情况如此:
我正在使用Codeigniter + Angular Js创建一个简单的应用程序。
我使用Codeigniter进行了Angular和服务器端验证的客户端验证。 两者都运行正常,除了一件事,非常重要:我无法显示来自服务器端验证的flashdata消息。
可能重定向到登录页面需要多个服务器请求,然后flashdata会丢失。
这就是我所做的:
在codeigniter控制器中:
$this->session->set_flashdata('errors', 'Username/password combination not correct');
$this->session->keep_flashdata('errors');
redirect('#/login');
在视图中:
<?php
echo validation_errors();
if ($this->session->flashdata('errors'))
{
echo '<p>' . $this->session->flashdata('errors') . '</p>';
}
?>
在StackOverflow和Google中阅读已经认为解决方案将使用:
$ this-&gt; session-&gt; keep_flashdata
但在我的情况下不起作用。
这就是问题:
如何为多个服务器请求保留flashdata?
我无法加载视图,因为我在一个角度的js partial里面,所以我必须重定向。但我必须能够不惜一切代价保留flashdata。
答案 0 :(得分:2)
不要在同一个函数中添加$this->session->keep_flashdata('errors');
,而是在控制器的构造函数中添加它。这将使flashdata保留另一个服务器请求,允许它在之后使用。