2014-10-29 78 views
0

我有三個表格,experiences,imagesexperience_images如何從Eloquent的第三個關係表中獲取所有相關的行?

experience_images我有兩列,experience_idimage_id。此表可以爲一個經驗,像這樣持有大量圖像:

"experience_id","image_id" 
"6","31" 
"6","32" 
"6","33" 
"6","34" 

現在我該怎樣運行Experience::find(6)->images得到Image集合從我Experience模式?

回答

1

你必須建立的關係,你的口才模型

class Experience extends Eloquent { 
    public function images(){ 
     return $this->belongsToMany('Image', 'experience_images', 'experience_id', 'image_id'); 
    } 
} 

In the Official Docs

+0

@Marwelln這些隱式外鍵真的有必要嗎?通常情況下,您可以將它們留下,並按照慣例使用小寫模型名稱+'_id' – lukasgeiter 2014-10-29 09:07:06

+0

在我的情況下,這是因爲我的模型都被命名爲'Model',但我猜它可能已被跳過,因爲示例中的模型被命名'體驗'和'圖像'。如果你願意,你可以恢復我的編輯。 – Marwelln 2014-10-29 09:24:12

+0

嗯好的,我認爲你有傳統的型號名稱 – lukasgeiter 2014-10-29 09:25:54

0

你必須在paremeter發現添加ID()。在這種情況下是6:

$exp = Experience::find(6); 

foreach($exp->images as $e){ 

     return $e->somedata; 

} 
相關問題