Таким образом, я не верю, что Eloquent поддерживает groupBy (вам придется написать собственный запрос);и вы не группируете все столбцы.
Ваш запрос не изменяет выбранные столбцы, поэтому laravel будет , выбирая все из них ;и что-то уникальное, например, ваши идентификаторы будет разбивать группы.Вам либо нужно четко указать, что вы выбираете для включения групп, либо явно указать, как суммировать другие столбцы.
Все примеры в документах показывают настроенные запросы выбора,за исключением тех, которые конкретно указаны под заголовком «groupBy / Have», что, вероятно, является ошибкой документов.
Но обратите внимание на другие примеры, например, на этот, которые применяют функции группировки ко всем выбранным столбцам:
$users = DB::table('users')
// count is a grouping function; status is grouped below
->select(DB::raw('count(*) as user_count, status'))
->where('status', '<>', 1)
->groupBy('status')
->get();
Группировка - это то, что вы действительно хотите?Группировка суммирует таблицу, например, по предоставленным итоговым значениям, или количествам, или уникальным «именам».Если это так, вам нужно будет изменить запрос вручную, как в примере выше.
Если вы просто хотите упорядочить их по «имени» (т.е. сгруппировать их вместе), то вам нужен orderBy функция.В этом случае вы измените свой код следующим образом:
return Detail::whereIn('id', $array)
->with('master')
->groupBy('name')
->get();
Хотя я не думаю, что это имеет здесь значение, вы можете подумать, является ли name
уникальным именем столбца междуосновные и подробные таблицы.