У меня есть отношения между двумя моделями.Пользователь имеет отношение принадлежит ToMany к модели инвентарь .Я сделал это следующим образом.
public function inventory_items()
{
return $this->belongsToMany(
'App\Item', // joined model
'inventory', // pivot table name
'userid', // column name in pivot table
'item_id' // column name in pivot table
)->withPivot('equipped','id');
}
В настоящее время я получаю данные, подобные этим
$items = $user->inventory_items()->orderBy('inventory.id', 'DESC')->paginate(25);
И в нем перечислены элементы следующим образом.
+-------+-------------------+
| name |item_id|description|
----------------------------|
| item 1| 1 | lorem... |
| item 1| 1 | lorem... |
| item 1| 1 | lorem... |
| item 2| 2 | lorem... |
| item 2| 2 | lorem... |
| item 3| 3 | lorem... |
----------------------------
Как я могу сгруппировать данные по item_id и показать их количество?Я хочу что-то вроде этого
+-----------+-------+------------+
| name |item_id|description|
--------------------------------|
|item 1 (x3)| 1 | lorem... |
|item 2 (x2)| 2 | lorem... |
|item 3 (x1)| 3 | lorem... |
----------------------------------
Я пробовал разные варианты
$items = $user->inventory_items()->orderBy('inventory.id', 'DESC')->groupBy("inventory.item_id")->paginate(25);
Но он возвращается с
This is incompatible with sql_mode=only_full_group_by
Как я могу это сделать?Желательно без изменения sql_mode