我在User
中有以下关系。
public function partner()
{
return $this->hasOne('App\Partner','partner_id');
}
我正在访问这种关系
auth()->user()->partner()->name
但它给了我name
表中partners
可用的例外情况:
未定义属性:Illuminate \ Database \ Eloquent \ Relations \ HasOne :: $ name`
来自auth()->user()->partner()
的用户对象也是空的。
我缺少什么?
答案 0 :(得分:1)
auth()->user()->partner()
返回关系绑定,而不是模型本身。
尝试auth()->user()->partner->name
。
答案 1 :(得分:1)
首先,确保您建立正确的关系:
<强> user.php的强>
public function partner()
{
return $this->hasOne('App\Partner');
}
<强> Partner.php 强>
public function user()
{
return $this->belongsTo('App\User');
}
访问用户的合作伙伴:
// Get the user's Partner instance:
$partner = auth()->user()->partner;
// Access the user's partner properties:
$partner_name = auth()->user()->partner->name;
另外,请检查您的partners
表格是否包含user_id
列。
答案 2 :(得分:0)
我认为你做错了,所有你需要做的就是改变:
public function partner()
{
return $this->hasOne('App\Partner','partner_id');
}
到
public function partner()
{
return $this->belongsTo('App\Partner');
}
用户属于合作伙伴,原因合作伙伴是元表。