Laravel — Попытка получить свойство не-объекта при входе в систему дважды

Не уверен, что здесь происходит.

Если это будет моей функцией входа в систему на одном из моих контроллеров

protected $user;

public function __construct()
{
$this->user = Auth::user();
}

public function postLogin()
{
if( Auth::attempt([
'username'=>Input::get('username'),
'password'=>Input::get('password')
]))
{
return $this->user->username;
}
else
{
return Redirect::to('login');
}
}

и это как мой выход

public function getLogout()
{
Auth::logout();

return Redirect::to('login');
}

Если я войду один раз, то отобразится имя пользователя, как я хочу.
Если я выйду из системы и войду снова, я получу

ErrorException (E_UNKNOWN)
Trying to get property of non-object

Затем, если я выйду из системы и войду снова, она будет работать еще раз, пока я снова не выйду.
Есть идеи о том, что здесь происходит?

0

Решение

Я думаю, что проблема как в:

$this->user = Auth::user();

а также

return $this->user->username;

В конструкторе вы должны сделать что-то вроде этого:

if (Auth::check()) {
$this->user = Auth::user();
}

но при входе в систему не следует использовать:

return $this->user->username;

но

return Auth::user()->username;
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector