Возможно ли сгруппировать предложения where в Laravel?

#laravel #eloquent

#laravel #красноречивый

Вопрос:

Я хочу сгруппировать товар на основе ЗАКАЗА NO, где продажи, сделанные пользователем входа в систему

  $sales = KotOrder::orderBy('id','DESC')
 ->where('prepared_by', Auth::user()->id)
 ->get();
return view('settups.restaurant.pos.report', compact('sales'));
 

введите описание изображения здесь

И я попробовал это

     $sales = KotOrder::orderBy('id','DESC')
     ->groupBy('qrtxt')
     ->where('prepared_by', Auth::user()->id)
     ->get();
    return view('settups.restaurant.pos.report', compact('sales'));
 

Выдает ошибку

введите описание изображения здесь

Комментарии:

1. $sales = KotOrder::where(‘prepared_by’, Auth::user()->id) ->OrderBy(‘id’, ‘DESC’) ->distinct(‘qrtxt’) ->get(); return view(‘настройки.ресторан.pos.отчет’, compact(‘sales’)); Попробуйте заменить groupBy на distinct ?

2. Я заменил groupBy на distinct, он по-прежнему отображает все элементы

3. Можно ли заменить идентификатор orderby desc на latest() вместо этого? Посмотрите, изменится ли результат.

4. Похоже, что есть несколько элементов с одинаковым порядком no (строка 1, 3, 7). Я предполагаю, что у каждого из них будет свой идентификатор. Когда вы группируете с помощью order no , он становится одной группой и id больше не является допустимым идентификатором этой группы. То же самое верно и для других столбцов, если вы не применяете агрегатную функцию (например: сумма (цена))

5. Итак, вместо select * того, чтобы указывать нужные столбцы. Укажите select список в своем запросе. Например: groupB(.)->where(..)->select(DB::raw('SUM(price) as total_price'))->get()