【问题标题】:CodeIgniter - Shared template variablesCodeIgniter - 共享模板变量
【发布时间】:2012-05-08 22:20:52
【问题描述】:

当我显示我的视图时,我不得不反复包含一个变量:

$this->load->view('login', array('logged_in' => $this->auth->is_logged_in()));
$this->load->view('somepage', array('logged_in' => $this->auth->is_logged_in()));
$this->load->view('anotherpage', array('logged_in' => $this->auth->is_logged_in()));

如何在我的所有视图输出中包含这一变量?有没有比扩展模板类更简单的方法?

【问题讨论】:

    标签: php codeigniter


    【解决方案1】:

    一种更简单的方法是将数组变成一个变量,这样你就不必一直输入它,例如

    $params = array('logged_in' => $this->auth->is_logged_in());
    $this->load->view('login', $params);
    $this->load->view('somepage', $params);
    $this->load->view('anotherpage', $params);
    

    另一种方法是创建一个 Helper,它返回用户是否登录。Helper 在您的控制器和视图中全局可用。请参阅http://codeigniter.com/user_guide/general/helpers.html 以及

    【讨论】:

    • 我选择了辅助选项。谢谢!
    【解决方案2】:

    使用会话怎么样?

    $this->session->userdata($var);
    

    或cookies

    $this->input->cookie($var, TRUE);
    

    谢谢。

    【讨论】:

    • 请注意,当前的 Codeigniter 会话是 Cookie。
    【解决方案3】:

    很好的解决方案,戈登!但是,根据具体情况,也可以使用Most Simple Template Library

    问候!

    【讨论】:

      【解决方案4】:

      您还可以直接从您的视图中访问该课程:

      <?php if( $this->auth->is_logged_in() ): ?>
        Hello!
      <?php endif; ?>
      

      这不是最好的解决方案,但我发现它适用于用户条件。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-08-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-11-30
        • 2016-08-20
        相关资源
        最近更新 更多