集合关系选择不起作用的列Laravel

问题描述 投票:1回答:1

我正在尝试选择关系数据库(product_detail)的列(id,title),但它根本不起作用。

我的查询:

RoomProduct::select('product_id', DB::raw('SUM(value) as total'))
          ->whereHas('room.offer', function($sql) use ($offer_id) {
              $sql->where('id', $offer_id);
          })->whereHas('product_detail', function($sql) use ($category_id) {
              $sql->select("id", "title")->with(['category' => function ($query) {
                $query->where('parent_id', $category_id);
            }])->orWhere('id', $category_id);
          })->groupBy("product_id")->get();
laravel eloquent relationship
1个回答
1
投票

首先阅读这篇文章的最高评价答案 - > Laravel - Eloquent "Has", "With", "WhereHas" - What do they mean?

whereHas()方法与has()方法相同,不同之处在于它允许您在闭包内提供额外的where子句。但是这两种方法都只返回具有您要求的关系的模型。这并不意味着它会返回这些关系中的任何列。

您需要使用with()方法获取您要查找的列,然后在您的选择中引用它们,如select('product_id', DB::raw('SUM(value) as total'), 'product_detail.id', 'product_details.title')

我希望这对你有所帮助!如果不清楚或有任何问题,我一定会尽快回复。

© www.soinside.com 2019 - 2024. All rights reserved.