这里有一些关于表格的信息User table-id-nameUserProduct table-id-user_id-product_idProduct table-id-nameContribution-id-user_product_id-contribution用户模型public function products(){ return $this->belongsToMany('App\Product');}产品型号public function users(){ return $this->belongsToMany('App\User');}用户产品枢轴模型use Illuminate\Database\Eloquent\Relations\Pivot;class UserProduct extends Pivot{ public function contribution() { return $this->hasMany('App\Contribution'); }}我试了一下,auth()->user()->products()->first()->pivot->contribution()但它给出了一些错误。调用未定义的方法 Illuminate\Database\Eloquent\Relations\Pivot::contribution()
2 回答
POPMUISE
TA贡献1765条经验 获得超5个赞
你可以使用自定义数据透视表模型吗?
class UserProduct extends Pivot
{
public function contribution()
{
return $this->belongsTo('App\Contribution');
}
}
// User model
public function products()
{
return $this->belongsToMany('App\Product')->using('App\UserProduct');
}
希望对你有帮助。
MM们
TA贡献1886条经验 获得超2个赞
我们不能在枢轴对象上调用函数。
解决方案是:
首先,将UserProduct添加到别名中,以便我们可以在blade中调用它。
配置\应用程序.php :
'aliases' => [ 'UserProduct' => App\UserProduct::class, ],
然后,使用查找函数然后调用关系函数
刀刃 :
@foreach ($product->users as $user) @foreach (UserProduct::find($user->pivot->id)->contribution()->get() as $contribution) // viewing contribution attribute @endforeach @endforeach
不要忘记包含数据透视表 ID
产品型号:
public function users(){ return $this->belongsToMany('App\User') ->withPivot(['id']); }
- 2 回答
- 0 关注
- 107 浏览
添加回答
举报
0/150
提交
取消