Индивидуальный редирект входа в систему Laravel

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

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

protected $redirectTo = $redirectAuth;

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

syntax error, unexpected '$redirectAuth' (T_VARIABLE), expecting function (T_FUNCTION) or 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';
}

Независимо от ваших предпочтений в кодировании.

Эта ошибка выглядит так, как будто вы пытаетесь вызвать функцию для установки свойства класса. Вы не можете вызывать функции там.

Tarek Adam 04.04.2019 01:31

И если вы переместите этот код в лучшее место - вам понадобятся двойные знаки == для сравнений. (Один для присвоения значения).

Tarek Adam 04.04.2019 01:32

Я пытался сделать это $redirectAuth = Auth::user()->user_type == 'Worker' || Auth::user()->user_type == 'Auditor', но я не уверен, почему я все еще получаю ту же ошибку, где я должен поставить выражение?

KiritoLyn 04.04.2019 01:44

@JustinF, пожалуйста, обновите свой вопрос и добавьте весь код LoginController, который может помочь нам, как вы изменили систему аутентификации laravel.

Thamer 04.04.2019 02:32

Да, пожалуйста, включите остальную часть кода! Мне может быть действительно трудно понять проблему частично.

Dennis Braga 04.04.2019 02:40

Попробуйте это: stackoverflow.com/questions/55442071/…

Karl Hill 04.04.2019 02:55
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
6
109
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В 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';
    }
}

То, что я сделал, это $type = auth()->user()->user_type; и сделал короткую руку return $userType == 'Worker' || $userType == 'Auditor' ? '/post' : '/chart';redirectTo() работает так, как я хочу. да.

KiritoLyn 04.04.2019 05:59

Другие вопросы по теме