T-W*_*cks 8 php codeigniter http-redirect
我对Codeigniter相当新,我想知道一些Codeigniter最佳实践.什么时候应该使用redirect()而不是使用
$this->load->view
Run Code Online (Sandbox Code Playgroud)
看来,当我使用redirect(),然后$this->session->set_flashdata就像它应该,但是当我使用
$this->load->view
Run Code Online (Sandbox Code Playgroud)
在收到其他请求后会显示该消息.
我想你真的回答了自己的问题.
当另一个页面顶部的简单flash消息是适当的响应时,使用redirect(),当你为传入的请求提供整个页面的反馈时,使用$ this-> load-> view().
因此,例如,当新用户注册时,"成功"页面将是加载的视图,并且可能当用户在其帐户中编辑某些内容时,在同一页面上的闪存消息"已更改已保存"或类似内容就足够了.
您的观察是正确的,每当您创建一些内容时flashdata,它仅在时间可用。这是因为它flashdata只是一种特殊类型session,您可以在下一个请求时使用它,并且在下一个请求之后它将自动删除。您不必关心它的删除。
可以使用以下代码进行测试:
$this->session->set_flashdata( 'test', 'testing' );
echo $this->session->flashdata( 'test' );
Run Code Online (Sandbox Code Playgroud)
不会打印任何内容。但现在下次执行以下代码:
echo $this->session->flashdata( 'test' );
Run Code Online (Sandbox Code Playgroud)
您将找到所需的输出。再执行一次将不会产生任何输出。这就是他们的工作方式。有关详细信息,请查看http://codeigniter.com/user_guide/libraries/sessions.html中的Flashdata部分
对于当前页面,您不需要flashdata将数据传递到视图。这是代码:
$data['test'] = 'testing';
$this->load->view('sample_view', $data);
Run Code Online (Sandbox Code Playgroud)
flashdata最重要的是,与视图一起使用redirect()和用于视图时,您应该传递变量。希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
7938 次 |
| 最近记录: |