在CodeIgniter中显示自定义消息

时间:2015-07-27 09:13:04

标签: php codeigniter

嗯,这可能是一个愚蠢的问题,但由于我对codeigniter很新,我不知道该怎么做。

我想要做的是,在前端随时显示我的自定义错误消息(例如登录失败,发布成功后发布等等)(在登录表单视图上,写后视图) ...等等)。

早些时候,当我只使用PHP(没有框架)时,我将这些消息存储在{{1}}全局变量中,并在前端页面中回显它们。但在这里,我希望CodeIgniter能够提供更好的解决方案。

5 个答案:

答案 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使用会话库,因此请确保它已加载到库自动加载器或使用它的控制器中。

FlashData Documentation

答案 4 :(得分:0)

在您的控制器中,您可以使用

$this->load->library('session');
$this->session->set_flashdata('msg', 'Your message here');
redirect('controller_name/method_name');      

在您的视图中,您可以使用

echo $this->session->flashdata('msg');