在Codeigniter中获取flashdata

时间:2015-02-21 11:26:37

标签: codeigniter session redirect

我将codeigniter flashdata中的数组保存为

//Show success message
$data = array(
 'message' => 'My message',
 'message2' => 'New Message'
);
$this->session->set_flashdata($data);

也试过

$this->session->set_flashdata('myData', $data);

重定向我试图检索的页面

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

哪个对我不起作用

print_r($this->session->flashdata('myData'));

无效

如何将flashdata设置为数组?

4 个答案:

答案 0 :(得分:0)

将flashdata保存在数组中,例如:

$data = array(
 'message' => 'My message',
 'message2' => 'New Message'
);
$this->session->set_flashdata("someone",$data);
redirect("home","refresh");

And in view:

print_r($this->session->flashdata('someone'));

答案 1 :(得分:0)

示例:来自其他帖子。

示例1

if($insert_status){
    $notification = "Record Inserted";  
} else {
    $notification = "Insertion Failed";
}

$this->session->set_flashdata('notification', $notification);
redirect('controller/method','refresh');

示例2

$notification  = array(
 'message' => 'test',
 'message_one' => 'text'
);

$this->session->set_flashdata('notification', $notification);
redirect('controller/method','refresh');

How to use codeigniter flash variable?

http://www.codeigniter.com/user_guide/libraries/sessions.html

您必须将回显的代码放在您重定向到的控制器的视图中。

<?php echo $this->session->flashdata('notification');?>

自举

<?php if ($this->session->flashdata('notification')) { ?>
<div class="alert alert-success">
<i class="fa fa-check-circle"></i> <?php echo $this->session->flashdata('notification'); ?>
</div>
<?php } ?>

答案 2 :(得分:0)

对于您的情况,当您使用$this->session->set_flashdata('myData', $data);时,请尝试使用此

$myData = $this->session->flashdata('myData');
echo "Message: ".$myData['message'].PHP_EOL;
echo "Message2: ".$myData['message2'];

将解决您的问题。

答案 3 :(得分:0)

在控制器

$this->session->set_flashdata('message_name', 'This is my message');

redirect(base_url(),$data);

在视图页面

<?php echo $this->session->flashdata('message_name'); ?>