我是代码点火器的新手,我仍在学习最佳实践。
在我的网站中,我有两个菜单,
一个用于登录的用户。
一个用于退出的用户。
我在views文件夹中有两个文件。
我的问题是:
我应该怎么做呢?
我最好的猜测是
在控制器调用中
if($loggedin)
$menu = $this->load->view('loggedin', true);
else
$menu = $this->load->view('loggedout', true);
$this->load->view('main', array('menu' => $menu));
所以基本上将正确的菜单代码传递到视图中并回显出来。
有更好的方法吗?
答案 0 :(得分:2)
你可以打破严格的MVC并在你看来有这样的东西:
<?php
// in your controller or when the user logs in:
$this->session->set_userdata('logged_in', 'true');
?>
你的观点:
<?php
// Logged in?
if ( ! $this->session->userdata('logged_in') {
$this->load->view('loggedout');
} else {
$this->load->view('loggedin');
}
?>
记住MVC是一个概念,它不是一成不变的。
答案 1 :(得分:1)
您可以在函数中加载任意数量的视图。例如:
if($loggedin){
$this->load->view('loggedin');
} else {
$this->load->view('loggedout');
}
$this->load->view('main');
使它更清洁但可能忽略了效率。
答案 2 :(得分:0)
我建议你使用插件。
将其放入插件
if($loggedin)
$menu = $this->load->view('loggedin', true);
else
$menu = $this->load->view('loggedout', true);