【发布时间】:2014-04-18 16:05:03
【问题描述】:
我正在使用 Laravel 4.1,我想加入 Eloquent:所以我有 3 个表:
表 1(池):id、名称
表2(贡献):id、amount、pool_id、contributor_id
表 3(贡献者):id, last_name
顺便说一句,我有 3 个模型:Pool、Contributor 和 Contribution 提前致谢。
【问题讨论】:
标签: laravel-4
我正在使用 Laravel 4.1,我想加入 Eloquent:所以我有 3 个表:
表 1(池):id、名称
表2(贡献):id、amount、pool_id、contributor_id
表 3(贡献者):id, last_name
顺便说一句,我有 3 个模型:Pool、Contributor 和 Contribution 提前致谢。
【问题讨论】:
标签: laravel-4
你可以这样做:
$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();
【讨论】: