2017-10-17 7 views
0

が欠落しています。Laravelカスタムピボットモデルは、私のようなカスタムピボットモデルを使用しようとしていますフィールド

class A extends Model{ 
    public function b() 
    { 
     return $this->belongsToMany(B::class) 
      ->using(PivotAB::class); 
    } 

class PivotAB extends Pivot{} 

ピボットテーブルから関係を通じて追加のフィールドをPivotABにアクセスする(artisan tinkerからの出力)を欠落しています。

>>>$q = A::all(); 
=> Illuminate\Database\Eloquent\Collection {#1385 
    all: [ 
     App\Models\A {#1386 
     id: 1    
     }, 
    ], 
    } 
>>> $q[0]->b[0]->pivot; 
=> App\Models\PivotAB {#1389 
    a_id: 1, 
    b_id: 1, 
    } 
>>> $q[0]->b[0]->pivot->custom_field; 
=> null 

しかし、私はピボットモデルを照会するとき、直接フィールドを埋めます:

>>> PivotAB::all();  
=> Illuminate\Database\Eloquent\Collection {#1382 
    all: [ 
     App\Models\PivotAB{#281 
     a_id: 1, 
     b_id: 1, 
     custom_field: "abc", 
     }, 
    ], 
    } 

何が欠けていますか?私はピボットフィールドをどこかに宣言する必要がありますか?

答えて

0

A.

に関係を通じて照会したときに、私はどういうわけか、私は->withPivot(...)または->using(...)を使用することが、実際にあなたのいずれかとしLaravelドキュメントを理解し、それらが読み込まれますので、->withPivot('custom_field')との関係ですべてのフィールドを追加する必要がありました両方を含める必要があります。

関連する問題