Laravel3 Eloquent:查询多对多关系中的属性

时间:2013-05-08 21:42:51

标签: laravel laravel-3 eloquent

此问题让我大吃一惊: 我有以下关系: Groups --> Intermediate Many-To-Many Table <-- Cities(每个小组可以分配多个城市)

现在我想获得所有分组城市的ID为ID X和id Y的Group-Models。 就像说“给我所有分配到波士顿和纽约的团体”

这可能与Laravel 3的Eloquent有关吗?

非常感谢! 的Matthias

2 个答案:

答案 0 :(得分:2)

根据我的经验,哪些条款在多对多关系中不起作用。但如果你急于加载它们,它们确实有效。

Group::with(array('cities' => function($q) {
    $q->or_where('id', '=', X);
    $q->or_where('id', '=', Y);
})->get();

答案 1 :(得分:2)

扩展aowie1的答案(这是正确的),嵌套or_where子句通常很有用(因为这具有逻辑意义,特别是如果您希望使用非或者where条件扩展查询):

Group::with(array('cities' => function($q) {
    $q->where(function($where) {
        $where->or_where('id', '=', 'x');
        $where->or_where('id', '=', 'y');
    });
})->get();

再一次,只是扩展aowie1的答案,我已经投了赞,因为它是正确的 - 这只是关于嵌套查询的一些额外信息或条件:)