2012-04-28 115 views
2

我反复不必包括一个可变的,当我展示我的看法:笨 - 共享模板变量

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

我怎么能包括在所有我的看法输出的这一个变量?有没有比扩展模板类更简单的方法?

回答

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

另一种方法是创建一个返回用户是否登录的助手。助手在你的控制器和视图全球可用。见http://codeigniter.com/user_guide/general/helpers.html

+2

我去了助手的选项。谢谢! – jSherz 2012-04-28 11:49:03

0

有关使用会话如何?

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

或饼干

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

感谢。

+0

请注意,当前的Codeigniter会话是Cookie。 – Eddie 2012-05-01 13:38:33

0

您也可以直接从您的视图中访问类:

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

这是不是最好的解决办法,但我发现它与用户的条件语句效果很好。