我正在完成将我的应用升级到Laravel 5的过程。我使用的是Laravel 4用户身份验证库,以及我自己的' Profile' model,用于存储用户配置文件信息,定义如下:
用户模型:
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;
......但这似乎是一种冗长的做法。
有没有更好的方法,还是我缺少的东西?任何帮助表示赞赏。
答案 0 :(得分:1)
如果这是我认为的那样,那么您可能需要将config/auth.php
的{{1}}选项更新为您的用户模型的类名。
此属性是laravel的auth驱动程序将使用的模型。默认情况下,它是model
。