情况如下:
我正在使用Codeigniter+Angular Js制作一个简单的应用程序。
我用Angular进行了客户端验证,用Codeigner进行了服务器端验证。两者都运行良好,但有一点非常重要:我无法显示来自服务器端验证的flashdata消息。
可能重定向到登录页面需要多个服务器请求,然后flashdata就会丢失。
这就是我所做的:
在代码点火器控制器中:
$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和谷歌认为解决方案将使用:
$this->session->keep_flashdata
但对我来说不起作用。
这就是问题所在:
如何为多个服务器请求保留flash数据?
我无法加载视图,因为我在一个有角度的js部分中,所以我必须重定向。但我必须能够不惜任何代价保留flash数据。
不要在同一函数中添加$this->session->keep_flashdata('errors');
,而是将其添加到控制器的构造函数中。这将为另一个服务器请求保留flash数据,以便以后使用。