首页 > 解决方案 > 两个控制器方法中的codeigniter会话数据

问题描述

我有这两个控制器方法都设置会话数据

//Profile
public function profile()
{
    $this->session->set_userdata('title', 'some_value');
}
//KYC
public function kyc()
{
    $this->session->set_userdata('title', 'KYC');
    $this->load->view('basic/basic_app_views/kyc');
}

我首先加载函数kyc并在我的视图中使用会话

<title><?php echo $this->session->userdata('title'); ?></title>

然后我在浏览器中加载profile并刷新kyc,但其中的值kyc仍然KYC像我在 kyc 函数中设置的那样。

即使在另一个控制器功能中重置了值,为什么title仍然有该值?KYC

标签: phpcodeigniter

解决方案


这是因为每次你调用你的函数时,它都会按照它定义的方式设置用户数据。

当尝试在页面中设置标题时,我建议您改为这样做。

//Profile
public function profile()
{
    $data['title'] = 'Profile Page';
    $this->load->view('basic/basic_app_views/kyc', $data);
}
//KYC
public function kyc()
{
    $data['title'] = 'KYC Page';
    $this->load->view('basic/basic_app_views/kyc', $data);
}

然后在你的kyc.php文件中调用它。

<title><?php echo $title; ?></title>

希望有帮助。


推荐阅读