【发布时间】:2015-05-14 10:58:35
【问题描述】:
我刚刚完成将我的应用程序升级到 Laravel 5 的过程。我使用 Laravel 4 用户身份验证库以及我自己的“配置文件”模型来存储用户配置文件信息,定义如下:
用户模型:
class User extends Eloquent implements AuthenticatableContract, CanResetPasswordContract {
//...
public function Profile()
{
return $this->hasOne('Profile');
}
//..
}
轮廓模型:
class Profile extends Eloquent {
//...
public function User()
{
return $this->belongsTo('User');
}
//...
}
以前(当应用程序是 Laravel 4 时),我可以通过 Auth 门面加载用户对象来访问登录用户的配置文件:
$user = Auth::user();
echo $user->profile->picture;
但是,自从升级到 Laravel 5 后,这一直抛出 Trying to get property of non-object 错误。
如果我直接通过用户模型加载用户对象,我可以通过用户加载配置文件,如下所示:
$user = User::findOrFail(Auth::user()->id)->first();
echo $user->profile->picture;
...但这似乎是一种冗长的做法。
有没有更好的方法,或者我缺少什么?任何帮助表示赞赏。
【问题讨论】:
-
不确定,但根据文档,我觉得应该是 Auth::user() 而不是 Auth::User()
-
我写这篇文章的错误——我实际上是在使用
Auth::user();
标签: php laravel eloquent laravel-5