2016-02-05 68 views
0

我正在開發家族樹laravel 5.1中的第一個項目。對於家庭電影,我有一個視頻表和一個人物表,並且我有person_video數據透視表來跟蹤每個視頻中人們的表現。那張桌子還有一個描述專欄,提示像'0:29-0:35,朝前方,戴着帽子'。laravel中的樞軸表:我如何訪問不僅僅是ID?

Video.php有:

public function people() 
{ 
    return $this->belongsToMany('App\Person', 'person_video'); 
} 

後來,當我顯示誰在給定的視頻的人,我有:

@foreach($video->people as $person) 
    @include ('person.partials._person_link', ['person' => $person]): 
    {{$person->pivot}} 
@endforeach 

的信息顯示爲人民,但它支點只給我video_id和person_id的值:

{"video_id":6,"person_id":4} 

它不包括描述(或時間戳,這不是我在這裏需要的)。我怎麼能描述這次旅行的描述?我希望能夠使用{{$ person-> pivot-> description}},但是當我嘗試時,沒有什麼可以顯示的。

回答

1

LaravelDocs/Eloquent/Working with pivot tables

默認情況下,只有鑰匙將出現在pivot對象。如果您 透視表中包含額外的屬性,必須在 定義關係指定它們:

return $this->belongsToMany('Role')->withPivot('foo', 'bar'); 

現在foobar屬性將是我們pivot對象爲Role模型上訪問。

所以你Video::people()應該是這樣的:

public function people() 
{ 
    return $this->belongsToMany('App\Person', 'person_video')->withPivot('description'); 
} 

那麼你應該能夠從您的視圖訪問{{$person->pivot->description}}

+0

是的,這就是它 - 謝謝你! –