2014-04-18 157 views
1

我使用Laravel 4.1,我想和雄辯的聯接:所以我有3個表:多對多加入Laravel雄辯

表1(池):ID,名稱

表2(貢獻):編號,數量,pool_id,contributer_id

表3(貢獻者):ID,姓氏

順便說一句,我有3種型號:游泳池,貢獻者,以及貢獻 在此先感謝。

回答

2

你可以這樣來做:

$result = Pool::join('Contribution', 'Pool.id', '=', 'Contribution.pool_id') 
->join('Contributer', 'Contribution.contributer_id', '=', 'Contributer.id')->get(); 

或者,如果你定義模型之間的關係,如:

class Pool extends Eloquent { 
... 
public function contributers(){ 
     return $this->belongsToMany('Contributer', 'contribution'); 
    } 
... 
} 

class Contributer extends Eloquent { 
... 
public function pools(){ 
     return $this->belongsToMany('Pool', 'contribution'); 
    } 
... 
} 

您可以訪問相關型號爲:

$contributers = $pool->contributers()->get(); // Returns Illuminate/Database/Eloquent/Collection object containing contributers of the pool 

或者你可以做渴望加載,如:

$result = Pool::with('contributers')->get(); 

查看http://laravel.com/docs/eloquent#relationships瞭解更多詳情。