如何在codeigniter中正确设置flash_message?

时间:2018-01-02 02:22:37

标签: php codeigniter

我有这样的问题。我正在使用Code igniter来构建一个网站。我想在从控制器重定向时传递一条flash消息。为此我已经制作了这个代码。

$data['message']=$this->session->set_flashdata('item', array('message' => 'Record created successfully','class' => 'success'));
var_dump($data['message']);
return;
redirect('question/index',$data);

然后我使用var_dump来确保一切正常。但它打印为null。这是什么问题。我该如何解决这个问题?

3 个答案:

答案 0 :(得分:1)

set_flashdata返回void,因此var_dump没有显示任何内容是合理的。

根据其手册:

  

CodeIgniter支持“flashdata”或仅可用于下一个服务器请求的会话数据,然后自动清除。

这显然意味着您只需要执行新的服务器请求。重定向,刷新,链接或只是将用户重定向到下一个请求的内容。

答案 1 :(得分:0)

在Controller方法中设置Flashdata

$ this-> session-> set_flashdata('success',“Password Changed”);

现在在您的视图中打印消息。

$ data ['message'] = $ this-> session-> flashdata('success');

答案 2 :(得分:0)

Flash消息的完整代码:

控制器:

      $query = $this->db->insert(table_name,$array_data);

      if($query){
        $this->session->set_flashdata('success', 'Sucessful added Multiple Image');
        redirect($this->redirect);
      }
      else{
        $this->session->set_flashdata('error', 'Something is wrong. Error!!');
        redirect($this->redirect);
      }

alert.php(查看文件)

<?php if ($this->session->flashdata('success')) { ?>

        <div class="alert alert-success">
          <a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>
            <strong><?php echo $this->session->flashdata('success'); ?></strong>
        </div>

<?php } ?>

<?php if ($this->session->flashdata('error')) { ?>

        <div class="alert alert-danger">
            <a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>
            <strong><?php echo $this->session->flashdata('error'); ?></strong>
        </div>

<?php } ?>

List.php(查看文件)

<?php
    $this->load->view('alert');
 ?>