我有这样的问题。我正在使用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。这是什么问题。我该如何解决这个问题?
答案 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');
?>