登录后在Laravel中重定向多个角色

时间:2018-12-11 06:49:40

标签: laravel redirect login roles

我正在尝试登录后重定向到特定页面。我的LoginController文件中的代码位于类LoginController中

float: none

我也将路由放入了我的web.php文件

当我试图查看此功能是否起作用时,问题就来了,因为当我引入一个校友用户时,它应该重定向到个人资料,但不会

2 个答案:

答案 0 :(得分:1)

LoginController.php文件(由您run php artisan make:auth生成)中,有一个属性可以处理它。

protected $redirectTo = '/home';

删除此属性,然后添加一个同名方法。

public function redirectTo(){
    // Code here
}

redirectTo方法将优先于redirectTo属性。这使我们能够定义逻辑,以处理对不同路径具有不同角色的用户。

public function redirectTo(){

    // User role
    $role = Auth::user()->role->name; 

    // Check user role
    switch ($role) {
        case 'Manager':
                return '/dashboard';
            break;
        case 'Employee':
                return '/projects';
            break; 
        default:
                return '/login'; 
            break;
    }
}

来源:Learn how to redirect authenticated users to corresponding path in Laravel

答案 1 :(得分:0)

尝试使用switch语句

public function authenticated($request , $user){
  switch ($user->rol){
    case 'Administrador':
      return redirect()->route('home') ;
    case 'Docente':
      return redirect()->route('balance') ;
    default:
      return redirect()->route('profile') ;
  }
}