データベースから集計した結果をビューに表示したい
PHPでwebアプリを作成しています。
データベースの値を集計し、ビューに表示したいと考えております。
下記の値だと、「トマト 2個」「きゅうり 3個」をビューに表示できる様にしたいです。
データベースはMySQLを利用、以下のデータが入っています。
MySQL
1foodsテーブル 2id, create_at, update_at, user_id, name, quantity 31 2020-05-20 02:43:11 2020-05-20 02:43:11 1 トマト 1 42 2020-05-20 04:48:27 2020-05-20 04:48:27 1 きゅうり 1 53 2020-05-20 04:48:45 2020-05-20 04:48:45 1 きゅうり 2 64 2020-05-20 05:32:37 2020-05-20 05:32:37 1 トマト 1
コントローラーでは下記の様に記載しております。
PHP
1【FoodController.php】 2 3class FoodController extends Controller 4{ 5 public function showTopPage() 6 { 7 $foods = Food::where('user_id', 1) #仮でuser_id直打ちしています 8 ->get() 9 ->groupBy(function ($row) { 10 return $row->name; 11 }) 12 ->map(function ($value) { 13 return $value->sum('quantity'); 14 }); 15 return view('top', compact('foods')); 16 } 17}
ビューは以下の通りです。
PHP
1【top.blade.php】 2 3 @foreach ($foods as $food) 4 {{$food}} 5 @endforeach
そうすると、「2個」「3個」と合計値は表示されるのですが「トマト」「きゅうり」が表示出来ません。
試したこと
$foodsにどの様な値が入っているか確認すると下記の様になっており、どうすればnameが取得できるのかわかりません。
{"\u3042\u3042\u3042":2,"\u304d\u3085\u3046\u308a":1,"\u8c5a\u8089":50}
コントローラーの設定がそもそも間違っているのでしょうか?
ご教示お願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/20 14:08
退会済みユーザー
2020/05/20 14:25