我正在使用CodeIgniter中的flash消息。我想将它们存储在数组中,但它只存储最后一个。
我想如何让它有效?例如,我将文本保存到数据库中,并保存了一些带有文本的图像。所以我保存了文字 - >写flash消息,比保存图像 - >写其他flash消息...而不是重新加载,我想写flash消息数组,但它只写最后一个。
我的flash消息存储代码:
public function set_flash_message($value)
{
$admin_flash = $this->session->flashdata('admin_flash');
$admin_flash[] = $value;
$this->session->set_flashdata('admin_flash', $admin_flash);
}
以下是插入包含2条Flash消息的文本的代码:
$this->texts_model->edit_text($id);
$this->upload_files($id, $this->input->post('files_titles'));
$this->set_flash_message('The text was successfully edited!');
$this->set_flash_message('The text was successfully edited! 2');
redirect('admin/texts/edit/'.$id);
它只写了“文本已成功编辑!2”;
感谢您的帮助!
答案 0 :(得分:1)
Codeigniter没有提供任何方法来获取当前调用中设置的flashdata。 'flashdata()'方法只会在之前的调用中设置数据。
在set_flash_message方法中使用以下行
$admin_flash = $this->session->userdata($this->session->flashdata_key.':new:'.'admin_flash');
而不是$admin_flash = $this->session->flashdata('admin_flash');
或
扩展会话库并添加方法
function get_current_flashdata($key)
{
$flashdata_key = $this->flashdata_key.':new:'.$key;
return $this->userdata($flashdata_key);
}
然后在set_flash_message方法中使用$admin_flash = $this->session->get_current_flashdata('admin_flash');
。
答案 1 :(得分:0)
尝试以下方法:
$admin_flash[]="";
public function set_flash_message($value)
{
$this->session->set_flashdata($admin_flash[], $value);
}
在这种情况下,您可以通过寻址索引号来访问它们:
echo $this->session->flashdata($admin_flash[0]);