不确定这里发生了什么。
如果在我的一个控制器中有这个作为我的登录功能
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;