我正在使用 Laravel 4.1,我想与 Eloquent 建立连接:所以我有 3 个表:
表 1(池):id、name
表2(贡献):id、金额、pool_id、contributor_id
表 3(贡献者):id、last_name
顺便说一下,我有 3 个模型:Pool、Contributer 和 Contribution
提前致谢。
最佳答案
你可以这样做:
$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更多细节。
关于laravel-4 - 多对多加入 Laravel Eloquent,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23157825/