laravel-4 - 多对多加入 Laravel Eloquent

标签 laravel-4

我正在使用 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/

相关文章:

php - Laravel - 上次登录日期和时间戳

php - Laravel 4 leftJoin mySQL 语句未正确返回

mysql - Laravel 按日期分组

laravel - 如何在 2 个 Eloquent 模型之间共享功能

php - 通过关系从 Laravel eloquent query 中获取 ID

php - 更新时 Composer 被杀

laravel-4 - Laravel 每日日志使用错误的权限创建

laravel - 图片上传和显示问题

javascript - 导致 javascript 'unterminated string literal' 错误的新行文本

php - Laravel 4 - 重定向时未定义路由