用户
 找回密码
 入住 CI 中国社区
搜索
查看: 60|回复: 0
收起左侧

[控制器] MY_Controller实现返回上一页,有状况。

[复制链接]
发表于 2019-1-3 00:26:22 | 显示全部楼层 |阅读模式
我需要在MY_Controller类里面实现记录前一页的URL.将它保存在 session_flashdata里面,但是却老丢失。
PHP复制代码
 
<?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的构造函数里面,但是通过观察显然是丢失了。


本版积分规则