许多人加入Laravel Eloquent

Nab*_*ieh 2 laravel-4

我正在使用Laravel 4.1,我想与Eloquent建立联系:所以我有3个表:

表1(池):id,name

表2(贡献):id,amount,pool_id,contributer_id

表3(贡献者):id,last_name

顺便说一句,我有3个模型:池,贡献者和贡献,提前谢谢.

eay*_*kin 7

你可以这样做:

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

或者,如果您在模型中定义关系,例如:

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

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

您可以访问相关模型:

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

或者你可以做急切的加载,例如:

$result = Pool::with('contributers')->get();
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅http://laravel.com/docs/eloquent#relationships.