Php 身份验证,CodeIgniter模板
如果用户已登录 如果用户未登录,我想显示不同的菜单 实现这一点的最佳方法是只创建两个不同的视图,并根据用户是否登录(签入控制器)包含它们Php 身份验证,CodeIgniter模板,php,templates,codeigniter,Php,Templates,Codeigniter,如果用户已登录 如果用户未登录,我想显示不同的菜单 实现这一点的最佳方法是只创建两个不同的视图,并根据用户是否登录(签入控制器)包含它们 到目前为止,这就是我的解决方案,如何改进它?如果它像标题或菜单一样小,我通常只是将其分解为视图部分,并确定在视图中显示哪个部分。我还调用了主模板视图中的所有其他视图部分,因此它只需要一个$this->load->view()。该方法将在控制器中为您提供以下信息: class Page extends CI_Controller { public fu
到目前为止,这就是我的解决方案,如何改进它?如果它像标题或菜单一样小,我通常只是将其分解为视图部分,并确定在视图中显示哪个部分。我还调用了主模板视图中的所有其他视图部分,因此它只需要一个
$this->load->view()
。该方法将在控制器中为您提供以下信息:
class Page extends CI_Controller {
public function index()
{
$view_data['main_content'] = 'home';
$this->load->view('templates/default');
}
}
在你看来:
$this->load->view('templates/partials/header');
if ($this->auth->logged_in())
{
$this->load->view('templates/partials/menu');
}
else
{
$this->load->view('templates/partials/index');
}
$this->load->view($main_content);
$this->load->view('templates/partials/sidebar');
$this->load->view('templates/partials/footer');
通过这种方式,您总是调用相同的模板,您可以只设置
$main\u content
,这是您要加载的实际视图,并且页面之间保持不变的所有其他内容都已经存在。如果我要将变量从控制器传递到(控制器视图)下一个视图?我该怎么做?到下一个视图(在你的情况下是家)*没问题,很高兴我能帮忙!
$this->load->view('templates/partials/header');
if ($this->auth->logged_in())
{
$this->load->view('templates/partials/menu');
}
else
{
$this->load->view('templates/partials/index');
}
$this->load->view($main_content);
$this->load->view('templates/partials/sidebar');
$this->load->view('templates/partials/footer');