Индивидуальный логин перенаправления Laravel - PullRequest
1 голос
/ 04 апреля 2019

Я пытаюсь установить правило, в котором, если пользователь является Worker или Auditor и входит в систему, он будет перенаправлен на /post, в противном случае он будет перенаправлен на /charts.В моем по умолчанию LoginController.php я пытался сделать что-то вроде этого:

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

protected $redirectTo = $redirectAuth;

Я получаю эту ошибку:

синтаксическая ошибка, неожиданная '$ redirectAuth' (T_VARIABLE),ожидающая функция (T_FUNCTION) или const (T_CONST)

Я что-то здесь печатаю неправильно?Я благодарен за любой ответ, спасибо.

РЕДАКТИРОВАТЬ:

С помощью @Karl Hill я смог создать свой собственный логин:

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

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

, но, конечно,это также будет работать:

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

Какое бы предпочтение вы ни выбрали.

1 Ответ

2 голосов
/ 04 апреля 2019

В 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';
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...