Php Flashdata在视图中为空
在控制器的末尾,我有以下代码:Php Flashdata在视图中为空,php,codeigniter,Php,Codeigniter,在控制器的末尾,我有以下代码: print_r($this->session->all_userdata()); $this->load->view('common/site_header'); 在我的site\u头文件的第一行,我有: print_r($this->session->all_userdata()); 第一个打印\u r包含: [flash:new:error] => Formulier niet correct ingevuld.
print_r($this->session->all_userdata());
$this->load->view('common/site_header');
在我的site\u头文件的第一行,我有:
print_r($this->session->all_userdata());
第一个打印\u r
包含:
[flash:new:error] => Formulier niet correct ingevuld.
在我重新提交第二个print\u r
包含的表单后,site\u header
文件中的print\u r
不包含此条目:
[flash:old:error] => Formulier niet correct ingevuld.
在我看来,该视图似乎有一个不同的会话对象,并且是一个请求或其他什么
如何在同一请求的视图中获取flash数据?flash数据仅可用于下一个请求,请使用$this->session->userdata()代码>相反会话对象在CI中全局可用。它只有一个实例,因此您的控制器和视图共享它。在我看来,在显示视图之前,您正在重置flashdata。您是否定义了重置flashdata的挂钩?您可以在查看之前尝试$this->session->keep_flashdata(var)吗?阿洛斯,你在你的模型或控制器中设置了flashdata吗?我将flashdata直接设置在我的控制器的打印上方。我还确认,在这个请求中,会话构造函数被调用了两次。我在自动加载中有会话,我没有任何挂钩,正如您所看到的,我在视图文件中的第一个打印和打印之间没有任何代码FlashData仅可用于下一个服务器请求。加载视图不是服务器请求,您可以使用重定向(这是一个服务器请求)到加载适当视图的函数。可能会有帮助吗?我对如何使用flashdata有错误的理解,谢谢flashdata仅适用于下一个服务器请求,而不是第二个服务器请求。如果您想为其他请求保留它,您需要使用$this->session->keep_flashdata('item')代码>