嗯,这可能是一个愚蠢的问题,但由于我对codeigniter很新,我不知道该怎么做。
我想要做的是,在前端随时显示我的自定义错误消息(例如登录失败,发布成功后发布等等)(在登录表单视图上,写后视图) ...等等)。
早些时候,当我只使用PHP(没有框架)时,我将这些消息存储在{{1}}全局变量中,并在前端页面中回显它们。但在这里,我希望CodeIgniter能够提供更好的解决方案。
答案 0 :(得分:2)
您可以在codeigniter中使用闪存数据。它会自动清除。
控制器:
//syntax => $this->session->set_flashdata('name', 'your message');
$this->session->set_flashdata('success', 'Post Successfully published.');
查看:
<?php echo $this->session->flashdata('success');?>
答案 1 :(得分:2)
使用会话Flash数据时,它仅适用于重定向
例如
public function index() {
$this->load->library('form_validation');
$this->form_validation->set_rules('username', 'Username');
$this->form_validation->set_rules('password', 'Password');
if ($this->form_validation->run() == FALSE ) {
$this->load->view('login');
} else {
$this->session->set_flashdata('success', 'You have logged on');
redirect('success_controller');
}
}
成功页面视图
<?php if ($this->session->flashdata('success')) { ?>
<?php echo $this->session->flashdata('success');?>
<?php }?>
答案 2 :(得分:1)
您可以使用$this->session->set_flashdata('item', 'value');
参考http://www.codeigniter.com/userguide2/libraries/sessions.html
答案 3 :(得分:1)
CodeIgniter有一个名为FlashData
的东西。 Flash数据将引入一个会话变量,该变量将存在于下一个请求中,然后在之后自行清除。
在CodeIgniter 3中,您可以像这样设置闪存数据:
$this->session->mark_as_flash(array('item', 'item2'));
或:
$this->session->mark_as_flash('item');
或者,您可以使用set_flashdata
,它将与以前版本的CodeIgniter一起使用:
$this->session->set_flashdata('item', 'value');
您可以通过以下方式查看flashdata:
$this->session->flashdata('item');
如果您想通过其他请求保留Flash数据,可以使用keep_flashdata
:
$this->session->keep_flashdata('item');
FlashData使用会话库,因此请确保它已加载到库自动加载器或使用它的控制器中。
答案 4 :(得分:0)
在您的控制器中,您可以使用
$this->load->library('session');
$this->session->set_flashdata('msg', 'Your message here');
redirect('controller_name/method_name');
在您的视图中,您可以使用
echo $this->session->flashdata('msg');