Коллекция Отношения Выбор столбцов не работает Laravel - PullRequest
0 голосов
/ 05 марта 2019

Я пытаюсь выбрать столбцы (id, title) базы данных отношений (product_detail), но она вообще не работает.

Мой запрос:

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();

1 Ответ

0 голосов
/ 05 марта 2019

Сначала прочитайте самый рейтинговый ответ этого поста -> Laravel - Красноречивый «Имеет», «С», «Где» - Что они означают?

Метод whereHas() такой же, как метод has(), за исключением того, что он позволяет вам предоставлять дополнительные выражения where внутри вашего замыкания.Но оба эти метода возвращают только те модели, которые имеют отношения, о которых вы просили.Это не означает, что он будет возвращать любые столбцы в этих отношениях.

Вам нужно будет использовать метод with(), чтобы получить столбцы, которые вы ищете, и затем ссылаться на них в вашем выборе как что-то вроде select('product_id', DB::raw('SUM(value) as total'), 'product_detail.id', 'product_details.title')

Надеюсь, это помогло вам!Если неясно или у вас есть какие-либо вопросы, я обязательно отвечу как можно быстрее.

...