Codeigniter flash消息 - 存储最后一个

时间:2014-02-27 07:11:29

标签: php codeigniter

我正在使用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”;

感谢您的帮助!

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]);