這里有一些關(guān)于表格的信息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');}產(chǎn)品型號(hào)public function users(){ return $this->belongsToMany('App\User');}用戶產(chǎn)品樞軸模型use Illuminate\Database\Eloquent\Relations\Pivot;class UserProduct extends Pivot{ public function contribution() { return $this->hasMany('App\Contribution'); }}我試了一下,auth()->user()->products()->first()->pivot->contribution()但它給出了一些錯(cuò)誤。調(diào)用未定義的方法 Illuminate\Database\Eloquent\Relations\Pivot::contribution()
2 回答

POPMUISE
TA貢獻(xiàn)1765條經(jīng)驗(yàn) 獲得超5個(gè)贊
你可以使用自定義數(shù)據(jù)透視表模型嗎?
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');
}
希望對(duì)你有幫助。

MM們
TA貢獻(xiàn)1886條經(jīng)驗(yàn) 獲得超2個(gè)贊
我們不能在樞軸對(duì)象上調(diào)用函數(shù)。
解決方案是:
首先,將UserProduct添加到別名中,以便我們可以在blade中調(diào)用它。
配置\應(yīng)用程序.php :
'aliases'?=>?[? ??'UserProduct'?=>?App\UserProduct::class,? ],
然后,使用查找函數(shù)然后調(diào)用關(guān)系函數(shù)
刀刃 :
@foreach?($product->users?as?$user) ????@foreach?(UserProduct::find($user->pivot->id)->contribution()->get()?as?$contribution)? ????????????//?viewing?contribution?attribute ????@endforeach ????@endforeach
不要忘記包含數(shù)據(jù)透視表 ID
產(chǎn)品型號(hào):
public?function?users(){??? ?return?$this->belongsToMany('App\User') ????????????????->withPivot(['id']); }
- 2 回答
- 0 關(guān)注
- 153 瀏覽
添加回答
舉報(bào)
0/150
提交
取消