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


Loading view and routing in CodeIgniter after user logging in

我正在尝试使用CI登录,基本上是在用户登录后,根据用户类型角色,他将被重定向到页面admin/dashboardsuperadmin/dashboard。我已经成功地加载了视图,但url有问题。登录后,网站会根据用户的类型加载正确的视图,但url仍然显示/auth/login。我该如何更改?我希望url显示为.../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();?>

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

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

另一个用于超级管理员

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