CodeIgniter - 共享模板变量

时间:2012-04-28 11:17:05

标签: php codeigniter

我在显示我的观点时不得不包含一个变量:

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

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

4 个答案:

答案 0 :(得分:3)

一种更简单的方法是将数组变为变量,因此您无需一直输出,例如。

$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,返回用户是否已登录。助手在控制器和视图中全局可用。请参阅http://codeigniter.com/user_guide/general/helpers.html以及

答案 1 :(得分:0)

如何使用会话?

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

或cookies

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

感谢。

答案 2 :(得分:0)

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

问候!

答案 3 :(得分:0)

您也可以直接在视图中访问该课程:

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

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