【问题标题】:Many to Many join Laravel Eloquent多对多加入 Laravel Eloquent
【发布时间】: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


    【解决方案1】:

    你可以这样做:

    $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

    【讨论】:

      猜你喜欢
      • 2018-04-03
      • 1970-01-01
      • 2013-02-04
      • 1970-01-01
      • 2021-12-28
      • 2019-06-13
      • 2013-03-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多