У меня есть две таблицы: рестораны и restaurant_order .
restaurants:
+----+-----------------+-------+
| id | item | price |
+----+-----------------+-------+
| 1 | Hot & Sour Soup | 2.5 |
| 2 | Manchurian Soup | 2.5 |
| 3 | Hummus | 1.8 |
| 4 | Tabouleh | 1.5 |
| . | . | . |
| . | . | . |
| . | . | . |
| 8 | Cake (slice) | 2 |
+----+-----------------+-------+
restaurant_orders:
+----+------------+---------------+----------+
| id | booking_id | restaurant_id | quantity |
+----+------------+---------------+----------+
| 1 | 13 | 3 | 2 |
| 2 | 15 | 9 | 1 |
| 3 | 15 | 1 | 1 |
| 4 | 13 | 8 | 2 |
| 5 | 15 | 8 | 3 |
| 6 | 15 | 11 | 1 |
| 7 | 13 | 10 | 2 |
+----+------------+---------------+----------+
В таблице restaurant_orders хранятся данные бронирования и заказанного товара. Я пытаюсь отобразить (на графике) количество раз, когда было задано c элементов. Таким образом, умножается на количество.
Контроллер
public function restaurant(){
$data = DB::table('restaurant_orders')
->join('restaurants', 'restaurant_id', '=', 'restaurants.id')
->select(
DB::raw('item as item'),
DB::raw('count(*) * quantity as total'))
->groupBy('item','quantity')
->get();
$array[]=['Item', 'Total'];
foreach($data as $key=>$value)
{
$array[++$key] = [$value->item, $value->total];
}
return view('executive.restaurant')->with('item',json_encode($array));
}
вывод, который я получаю:
+-------------------+-------+
| Item | Total |
+-------------------+-------+
| Cake (slice) | 2 |
| Cake (slice) | 3 |
| Fried Rice | 1 |
| Hot & Sour Soup | 1 |
| Hummus | 2 |
| Soft Drinks | 2 |
| Vanilla milkshake | 1 |
+-------------------+-------+
Я не хочу, чтобы тот же элемент повторялся, как показано выше для 'cake (slice)'. Я хочу, чтобы это было как:
+-------------------+-------+
| Item | Total |
+-------------------+-------+
| Cake (slice) | 5 |
| Fried Rice | 1 |
| Hot & Sour Soup | 1 |
| Hummus | 2 |
| Soft Drinks | 2 |
| Vanilla milkshake | 1 |
+-------------------+-------+