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

登录Laravel中的多个角色后重定向,laravel,redirect,login,roles,Laravel,Redirect,Login,Roles,我试图在登录后重定向到特定页面。我在LoginController类的LoginController文件中有这段代码 public function authenticated($request , $user){ if($user->rol=='Administrador'){ return redirect()->route('home') ; }elseif($user->rol=='Docente'){ return re

我试图在登录后重定向到特定页面。我在LoginController类的LoginController文件中有这段代码

public function authenticated($request , $user){
    if($user->rol=='Administrador'){
        return redirect()->route('home') ;
    }elseif($user->rol=='Docente'){
        return redirect()->route('balance') ;
    }else {
        return redirect()->route('profile');
    }

}
此外,我还将路由放在了web.php文件中


当我尝试查看此函数是否有效时,问题就出现了,因为当我介绍一个校友用户时,它应该重定向到profile,但它不会尝试使用
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') ;
  }
}

LoginController.php
文件中(在
运行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;
    }
}

来源:

Laravel Middleware完成了您在这里试图完成的工作。看看你的角色何时是
校友
,它重定向到了哪里?它重定向到/home你在
LoginController
类中使用了
authenticateUsers
特性吗?把它放在
LoginController
文件中,在
authenticated
函数中,就这样?我不必在路由文件中放入任何内容不,我有这个路由::get('/profile',Auth\LoginController@authenticated')->name('profile');因为如果我没有出现错误,请尝试
dd($user->rol)
public function authenticated($request,$user)
下的
LoginController
类可以被覆盖。只有@Anais在
LoginController
类中使用
AuthenticatesUsers
特征时,这个答案才有效(也是最好的IMHO)。是的,我在我的LoginController文件中使用这个类,我看到的是,这不起作用,因为用户的角色不在同一个表userOK,那么您可以调整
$role
的定义。可能类似于下面的
$role=Auth::user()->relationship->column