用户登录后在CodeIgniter中加载视图和路由

时间:2016-05-10 17:14:58

标签: php codeigniter

我正在尝试使用CI进行登录,基本上在用户登录后,他将根据用户类型角色重定向到页面admin/dashboardsuperadmin/dashboard。我已经成功加载了视图,但是网址有问题。登录后,网站会根据用户的类型设置加载正确的视图,但网址仍然显示... / auth / login。我该如何改变?我希望网址说.../admin/dashboard.../superadmin/dashboard

这是我在控制器Auth功能登录中获得的。

if($this->ion_auth->is_admin()){
    $this->load->view('superadmin/dashboard_view');
}else if($this->ion_auth->in_group('members')){
    $this->load->view('admin/dashboard_view');
}else{
    redirect('/', 'refresh');
}

这是我的登录表单。

 <?php echo form_open("auth/login");?>

          <p>
            <?php echo lang('login_identity_label', 'identity');?>
            <?php echo form_input($identity);?>
          </p>

          <p>
            <?php echo lang('login_password_label', 'password');?>
            <?php echo form_input($password);?>
          </p>

          <p>
            <?php echo lang('login_remember_label', 'remember');?>
            <?php echo form_checkbox('remember', '1', FALSE, 'id="remember"');?>
          </p>

          <p><?php echo form_submit('submit', lang('login_submit_btn'));?></p>

   <?php echo form_close();?>

1 个答案:

答案 0 :(得分:1)

您需要重定向,而不是从登录中加载视图。这意味着两个不同的控制器,一个用于管理员

class Admin extends CI_Controller
{
    public function dashboard()
    {
     $this->load->view('admin/dashboard_view');
    }
}

另一个用于superadmin

class Superadmin extends CI_Controller
{
    public function dashboard()
    {
     $this->load->view('superadmin/dashboard_view');
    }
}

控制器Auth功能登录

if($this->ion_auth->is_admin()){
    redirect('superadmin/dashboard');
}else if($this->ion_auth->in_group('members')){
    redirect('admin/dashboard');
}else{
    redirect('/', 'refresh');
}