如何在laravel 5中将用户,卖方和管理员重定向到他们的面板

时间:2018-07-22 10:15:46

标签: laravel

我在用户表中有级别列,登录后我想重定向到laravel中的面板,但我不知道在哪里检查并重定向用户??? 我尝试登录安全性

此代码正确吗?

 protected function authenticated(Request $request, $user)
{
     if(auth()->user()->isAdmin())
    {
        return redirect('/admin/panel');
    } elseif(auth()->user()->isWriter())
    {
        return redirect('/writer/panel');
    }
    return redirect('/user/panel');
}

2 个答案:

答案 0 :(得分:1)

redirectPath()方法覆盖到您的LoginController中。

class LoginController extends Controller
{
    use AuthenticatesUsers;

    public function redirectPath()
    {
        if (auth()->user()->isAdmin())
        {
            return '/admin/panel';
        }
        elseif (auth()->user()->isWriter())
        {
            return '/writer/panel';
        }
        return '/user/panel';
    }
}

答案 1 :(得分:0)

在使用Illuminate\Foundation\Auth\AuthenticatesUsers特征进行身份验证的LoginController中,您必须重写 redirectTo()方法并编写自己的逻辑。因此您必须输入以下代码:

 protected function redirectTo(){
        $user = User::whereId(Auth::id())->first();

        if(isset($user)){
            if($user->role == 'admin'){
                return '/admin/panel';    //path to admin panel
            }elseif($user->role == 'writer'){
                return '/writer/panle';   //path to writer panel
            }
        }
        return '/';
    }