我尝试了很多可能性,但我总是遇到同样的错误。
也许你应该帮助我...希望如此!我正在研究Laravel 4.2
我有两张桌子:
用户:
$表 - >增量( 'ID'); $ table-> string('email',50); ...
帐号:
$表 - >增量( 'ID'); $表 - >整数( 'USER_ID') - >无符号();
我有2个型号:
用户:
public function account()
{
return $this->hasOne('Account', 'id','user_id');
}
帐户:
public function user()
{
return $this->belongsTo('User', 'id');
}
现在我希望通过以下关系获取帐户表中的user_id:
$userId = Auth::id();
$account = User::find($userId)->Account()->user_id;
我收到此错误:ErrorException 未定义属性:Illuminate \ Database \ Eloquent \ Relations \ HasOne :: $ user_id
你能帮帮我吗?
提前谢谢。
答案 0 :(得分:2)
User :: find($ userId) - > Account()实际上返回一个HasOne类型的对象,你需要使用User :: find($ userId) - > Account() - > get()来获取一个包含实际Account对象的数组,以便User :: find($ userId) - > Account() - > get()[0]实际上获取Account对象。和User :: find($ userId) - > Account-> user_id是一个laravel buildin功能,可自动映射Account对象,因此您可以直接获取Account对象。
答案 1 :(得分:0)
尝试
$account = User::find($userId)->Account->user_id;
答案 2 :(得分:0)
如果User::find($userId)->account
无效,请检查getAccountAttribute()
是否不存在。