我有这两个控制器方法,它们都设置会话数据
//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?
发布于 2019-09-12 08:30:51
要查看会话标题变量的变化,您需要稍微修改一下代码……
所以你的
//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');
}像这样的东西。
//Profile
public function profile()
{
$this->session->set_userdata('title', 'some_value');
$this->load->view('basic/basic_app_views/kyc'); // View the title value
}
//KYC
public function kyc()
{
$this->session->set_userdata('title', 'KYC');
$this->load->view('basic/basic_app_views/kyc'); // View the title value
}这样你就会看到你的价值发生了变化。两种方法中的每一种都会分别更改该值。但在前面的代码中,只有kyc显示了它。
发布于 2019-09-12 17:33:17
这是因为每次你调用你的函数时,它都会按照它定义的那样设置userdata。
当尝试在页面中设置标题时,我建议您这样做。
//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>希望这能有所帮助。
https://stackoverflow.com/questions/57898003
复制相似问题