首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >两种控制器方法中的codeigniter会话数据

两种控制器方法中的codeigniter会话数据
EN

Stack Overflow用户
提问于 2019-09-12 07:38:20
回答 2查看 57关注 0票数 0

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

代码语言:javascript
复制
//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并在我的视图中使用会话

代码语言:javascript
复制
<title><?php echo $this->session->userdata('title'); ?></title>

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

为什么在重置了另一个控制器函数中的值之后,title仍然具有值KYC

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-09-12 08:30:51

要查看会话标题变量的变化,您需要稍微修改一下代码……

所以你的

代码语言:javascript
复制
//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');
}

像这样的东西。

代码语言:javascript
复制
//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显示了它。

票数 0
EN

Stack Overflow用户

发布于 2019-09-12 17:33:17

这是因为每次你调用你的函数时,它都会按照它定义的那样设置userdata。

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

代码语言:javascript
复制
//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文件中调用它。

代码语言:javascript
复制
<title><?php echo $title; ?></title>

希望这能有所帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57898003

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档