Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何根据Laravel 8中的用户角色或权限重定向到不同的视图?_Php_Laravel_Web_Eloquent_Laravel 8 - Fatal编程技术网

Php 如何根据Laravel 8中的用户角色或权限重定向到不同的视图?

Php 如何根据Laravel 8中的用户角色或权限重定向到不同的视图?,php,laravel,web,eloquent,laravel-8,Php,Laravel,Web,Eloquent,Laravel 8,我将下面的函数放在LoginController类中,以将用户重定向到不同的视图,登录后我得到了这个419 |过期页面 protected function authenticated(Request $request, $user) { if ($user->PRIVILEGE == 'C') { return redirect()->route('/users'); } else if ($user->PRIVILEGE == 'B') {

我将下面的函数放在LoginController类中,以将用户重定向到不同的视图,登录后我得到了这个419 |过期页面

protected function authenticated(Request $request, $user) {
    if ($user->PRIVILEGE == 'C') {
        return redirect()->route('/users');
    } else if ($user->PRIVILEGE == 'B') {
        return redirect('/blog');
    } else {
        return redirect('/');
    }
}

查看
app\Http\Middleware\RedirectIfAuthenticated.php中的
handle
方法,您将看到在用户通过身份验证检查后,他们会收到一个重定向

此类用于在验证后将用户重定向到正确的
登录
页面

    public function handle($request, Closure $next, $guard = null)
    {
        if (Auth::guard($guard)->check()) {
            $user = Auth::user();
            if ($user->PRIVILEGE == 'C') {
                return redirect()->route('/users');
            }
            if ($user->PRIVILEGE == 'B') {
                return redirect('/blog');
            } 
            return redirect('/');
        }

        return $next($request);
    }
  • 首先将其放入您的登录控制器类中:使用illumb\Support\Facades\Auth

  • 注释掉这一行protected$redirectTo=… 并将此函数添加到LoginController类中:

    公共函数重定向路径() {

    }


  • 最好使用Auth-guard。当使用您的答案时,它会将我带到“/home”我不想去“/home”。请打印一些内容进入并查看$user是什么以及返回的位置
    if(Auth::user()->privilege =='C'){
    
      return '/users';
    }
    if(Auth::user()->privilege=='B'){
    
      return '/blog';
    }