这个问题让我大吃一惊:我有以下关系:(
Groups --> Intermediate Many-To-Many Table <-- Cities
每个组可以分配多个城市)
现在我想获取所有分配的城市是 id X 和 id Y 的 Group-Models。就像说“给我分配给波士顿和纽约的所有组”
Laravel 3 的 Eloquent 有可能吗?
非常感谢!马蒂亚斯
根据我的经验,where 子句在多对多关系中不起作用。但是,如果您急切地加载它们,它们确实可以工作。
Group::with(array('cities' => function($q) {
$q->or_where('id', '=', X);
$q->or_where('id', '=', Y);
})->get();
扩展 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 的答案,因为它是正确的-这只是有关带有 or 条件的嵌套查询的一些附加信息:)