我想将登录表单放在导航(模板)中,以便它将显示在所有页面中。 并将检查数据库中的用户名和密码,而无需转到其他页面。如果失败,导航中将显示错误,如果成功,将使用特定的costomizations重新加载页面。请告诉我如何使用代码和详细信息。
我在模板中有这些部分:
我想在每个控制器中执行此操作:
$this->load->view('templates/header');
$this->load->view('templates/nav');
$this->load->view('related_view');
$this->load->view('templates/footer');
但我的导航应该包含一个登录表单,该表单不会通过提交转到另一个页面。
答案 0 :(得分:0)
我通常做这样的事情:
<?php
$this->load->view('templates/header');
if ($this->user_model->isLoggedIn())
{
// Logged-in users should see this view
$this->load->view('templates/nav-registered');
}
else
{
// Guests should see this
$this->load->view('templates/nav-guest');
}
$this->load->view('related_view');
$this->load->view('templates/footer');
如果您覆盖Loader类以自动获取页眉/页脚,而不必在 EVERY 控制器方法中进行编码,那么您会感谢自己。只是一个想法..
答案 1 :(得分:0)
使用会话检查已记录的用户,并将其放在导航视图中,但首先要确保您已从auload或控制器加载会话
if($this->session->userdata('user_loged')){
//code to put some navigation when use is loged
}else{
//code to put login form
}
答案 2 :(得分:0)
我找到的解决方案是扩展Controller类。所以在这种情况下,我们应该创建一个扩展控制器(例如MY_Controller)并将动态操作(此处为身份验证)作为方法放入其中。
然后我们应该在每个控制器中扩展这个自制的控制器,这样就可以简单地处理模板中的认证。