Flash数据消息未显示在视图中

时间:2016-09-29 09:00:43

标签: php codeigniter model-view-controller

我正在尝试在控制器1中设置闪存数据并重定向到控制器2,在那里我将数据存储在$ ls -la output* | wc -l 10 变量中以使其显示在视图2中。以下是我的代码:

控制器1:

$page_data

控制器2:

$this->session->set_flashdata('message','my custom message');
  redirect('controller2','refresh');

查看2:

 $page_data['loginmessage'] = $this->session->flashdata('message');
 $this->load->view('view2',$page_data);

CodeIgniter能够加载View 2,但不显示登录消息。换句话说,我没有在Controller 2中获得闪存数据消息。

2 个答案:

答案 0 :(得分:0)

您需要更改代码的一小段代码才能正确重定向。

控制器1:

function first()
{
$this->session->set_flashdata('message','my custom message');
redirect("/controller2/second", "refresh");
}

控制器2:

function second()
{
$page_data['loginmessage'] = $this->session->flashdata('message');
$this->load->view('view2',$page_data);
}

此外,如果刷新页面,则闪存数据将消失,因为它只会出现一次。

查看代码相同

<p> <?php echo $loginmessage ?> </p>

答案 1 :(得分:0)

无需使用控制器2来显示flashdata。使用此

控制器1

  $this->session->set_flashdata('message','my custom message');
  redirect('controller2/any_method');

现在,您可以在message(通过控制器2加载)文件中使用view2.php作为

<p> <?php echo $this->session->flashdata('message'); ?> </p>