2016-05-10 51 views
1

我试图用CI进行登录,基本上在用户登录后,他将根据用户类型角色将其重定向到页面admin/dashboardsuperadmin/dashboard。我已成功加载视图,但网址存在问题。登录后,网站根据用户的类型管理加载正确的视图,但url仍然显示.../auth/login。我该如何改变这一点?我想要的网址说.../admin/dashboard.../superadmin/dashboard用户登录后在CodeIgniter中加载视图和路由

这就是我在我的控制器身份验证功能登录。

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

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

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

和控制器的验证功能登录

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

谢谢!无论如何,我们是否总是必须在Auth控制器中使用重定向?我不介意,只是想知道为什么。 –