【问题标题】:Laravel3 Eloquent: Query for attribute in Many-To-Many RelationLaravel3 Eloquent:查询多对多关系中的属性
【发布时间】:2013-05-03 06:36:38
【问题描述】:

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

现在我想获取所有组模型,其中分配的城市是 id X 和 id Y。 比如说“把所有分配到波士顿和纽约的组给我”

Laravel 3 的 Eloquent 可以做到吗?

非常感谢! 马蒂亚斯

【问题讨论】:

    标签: laravel laravel-3 eloquent


    【解决方案1】:

    根据我的经验,where 子句在多对多关系中不起作用。但是,如果您急切地加载它们,它们确实可以工作。

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

    【讨论】:

      【解决方案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 的答案,我赞成,因为它是正确的 - 这只是一些关于带有 or 条件的嵌套查询的附加信息:)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-11-03
        • 2023-04-01
        • 1970-01-01
        • 2019-01-15
        • 2014-10-31
        • 2021-02-24
        • 1970-01-01
        • 2020-10-23
        相关资源
        最近更新 更多