定制的重定向登录Laravel

时间:2019-04-03 23:15:55

标签: php laravel laravel-5.6 laravel-5.7

我正在尝试设置一个规则,如果用户是WorkerAuditor并登录,他将被重定向到/post,否则他将被重定向到{{1} }。在默认的/charts中,我尝试执行以下操作:

LoginController.php

我收到此错误:

  

语法错误,意外的“ $ redirectAuth”(T_VARIABLE),预期   函数(T_FUNCTION)或const(T_CONST)

我在这里输入错误吗?感谢您的答复。

编辑:

在@Karl Hill的帮助下,我能够创建自己的自定义登录名:

$redirectAuth = Auth::user()->user_type = 'Worker' || Auth::user()->user_type = 'Auditor'
        ? '/post'
        : '/charts';

protected $redirectTo = $redirectAuth;

但是,当然,这也可以工作:

public function redirectTo()
{
    $userType = auth()->user()->user_type;

    return $userType == 'Worker' || $userType == 'Auditor' ? '/charts' : 'brethren';
}

无论您的编码偏好是什么。

1 个答案:

答案 0 :(得分:2)

在LoginController中,删除以下行。

protected $redirectTo = '/home'; 

然后将新方法redirectTo()添加到LoginController。 redirectTo()方法优先于redirectTo属性。

public function redirectTo()
{
    $type = auth()->user()->user_type();

    // Check user type
    switch ($type) {
        case 'Worker':
            return '/post';
        case 'Auditor':
            return '/charts';
        default:
            return '/login';
    }
}