【问题标题】:Laravel/Eloquent Include relationships whereLaravel/Eloquent 包含关系
【发布时间】:2016-03-25 20:10:28
【问题描述】:

我有三个模型。类别、产品和变体。一个类别有很多产品,一个产品有很多变体。我正在尝试做的是获得具有至少一种产品的类别,该产品具有至少一种变体。我已经能够用这段代码做到这一点:

$categories = Category::with(['products', 'products.variants'])
        ->whereHas('products', function($query) {
            $query->whereHas('variants', function() {});
        })
        ->get();

但是,棘手的部分是,我想排除没有任何变化的产品。如果不排除整个类别,我似乎无法做到这一点。

简而言之。结果集将仅包括具有至少一种产品的类别,该产品具有至少一种变体。并且产品的(子)结果集将仅包括具有至少一个变体的产品。

对不起,如果这很难理解。老实说,我不知道如何表达这样一个奇怪的具体问题。

【问题讨论】:

    标签: php sql laravel orm eloquent


    【解决方案1】:

    根据这个答案https://stackoverflow.com/a/19921418/5465657搞清楚

    我的工作代码

    $categories = Category::with(['products' => function($query) {
            $query->whereHas('variants', function() {});
        }, 'products.variants'])
            ->whereHas('products', function($query) {
                $query->whereHas('variants', function() {});
            })
            ->get();
    

    【讨论】:

      猜你喜欢
      • 2022-01-09
      • 2021-06-04
      • 2015-07-23
      • 2016-08-13
      • 2018-02-09
      • 2020-10-14
      • 1970-01-01
      • 1970-01-01
      • 2015-08-27
      相关资源
      最近更新 更多