Я пытаюсь установить правило, согласно которому, если пользователь является 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';
}
Независимо от ваших предпочтений в кодировании.
И если вы переместите этот код в лучшее место - вам понадобятся двойные знаки == для сравнений. (Один для присвоения значения).
Я пытался сделать это $redirectAuth = Auth::user()->user_type == 'Worker' || Auth::user()->user_type == 'Auditor', но я не уверен, почему я все еще получаю ту же ошибку, где я должен поставить выражение?
@JustinF, пожалуйста, обновите свой вопрос и добавьте весь код LoginController, который может помочь нам, как вы изменили систему аутентификации laravel.
Да, пожалуйста, включите остальную часть кода! Мне может быть действительно трудно понять проблему частично.
Попробуйте это: stackoverflow.com/questions/55442071/…






В 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() работает так, как я хочу. да.
Эта ошибка выглядит так, как будто вы пытаетесь вызвать функцию для установки свойства класса. Вы не можете вызывать функции там.