Не уверен, что здесь происходит.
Если это будет моей функцией входа в систему на одном из моих контроллеров
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
Затем, если я выйду из системы и войду снова, она будет работать еще раз, пока я снова не выйду.
Есть идеи о том, что здесь происходит?
Я думаю, что проблема как в:
$this->user = Auth::user();
а также
return $this->user->username;
В конструкторе вы должны сделать что-то вроде этого:
if (Auth::check()) {
$this->user = Auth::user();
}
но при входе в систему не следует использовать:
return $this->user->username;
но
return Auth::user()->username;
Других решений пока нет …