Laravel 4 多对多加入拉威尔,口若悬河

Laravel 4 多对多加入拉威尔,口若悬河,laravel-4,Laravel 4,我使用的是Laravel 4.1,我想加入Eloquent:因此我有3个表: 表1(池):id、名称 表2(供款):id、金额、池id、供款人id 表3(出资人):身份证、姓氏 顺便说一句,我有3个模型:池、供款人和供款人 提前感谢。您可以这样做: $result = Pool::join('Contribution', 'Pool.id', '=', 'Contribution.pool_id') ->join('Contributer', 'Contribution.contribut

我使用的是Laravel 4.1,我想加入Eloquent:因此我有3个表:

表1(池):id、名称

表2(供款):id、金额、池id、供款人id

表3(出资人):身份证、姓氏

顺便说一句,我有3个模型:池、供款人和供款人
提前感谢。

您可以这样做:

$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();
有关更多详细信息,请参阅