【问题标题】:Flash data message is not getting displayed in the viewFlash 数据消息未显示在视图中
【发布时间】:2017-02-07 12:26:00
【问题描述】:

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

控制器 1:

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

视图2:

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

CodeIgniter 能够加载视图 2,但不显示登录消息。换句话说,我在控制器 2 中没有收到闪存数据消息。

【问题讨论】:

    标签: php codeigniter model-view-controller


    【解决方案1】:

    您需要更改代码以正确重定向代码。

    控制器 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);
    }
    

    另外,如果刷新页面,flash 数据会消失,因为它只会出现一次。

    查看代码相同

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

    【讨论】:

      【解决方案2】:

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

      控制器1

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

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

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

      【讨论】:

        猜你喜欢
        • 2013-07-05
        • 2015-10-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多