eemengnan 发表于 2019-1-3 00:26:22

MY_Controller实现返回上一页,有状况。

我需要在MY_Controller类里面实现记录前一页的URL.将它保存在 session_flashdata里面,但是却老丢失。

<?php defined('BASEPATH') OR exit('No direct script access allowed');

class MY_Controller extends CI_Controller {
   
    protected $data = array();
    // save previous page ********************************************
    protected $CurrentURL;
    protected $PreviousURL;
    protected $SaveURL = TRUE;

    function __construct() {
      parent::__construct();
      $this->PreviousURL = $this->session->flashdata('PreviousURL');
      $this->CurrentURL= $this->uri->uri_string();
      var_dump($_SESSION);
    }

    function __destruct() {
      if ($this->SaveURL == TRUE) {
            $this->session->set_flashdata('PreviousURL', $this->CurrentURL);
      } else {
            $this->session->set_flashdata('PreviousURL', $this->PreviousURL);
      } var_dump($_SESSION);
    }
}



显示结果是:
array (size=1)'__ci_last_regenerate' => int 1546445802
页面正文
页面正文
页面正文
array (size=3)'__ci_last_regenerate' => int 1546445802'PreviousURL' => string 'config/account/usergrouplist' (length=28)'__ci_vars' =>   array (size=1)      'PreviousURL' => string 'new' (length=3)

显然,按理说每一次跳转页面或刷新,析构函数会把URL传递到下一个Controller的构造函数里面,但是通过观察显然是丢失了。


页: [1]
查看完整版本: MY_Controller实现返回上一页,有状况。