質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

1650閲覧

【Laravel】データベースから集計した値をビューに表示したい

退会済みユーザー

退会済みユーザー

総合スコア0

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2020/05/20 13:29

編集2020/05/20 13:41

データベースから集計した結果をビューに表示したい

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}

コントローラーの設定がそもそも間違っているのでしょうか?
ご教示お願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

php

1@foreach ($foods as $key => $food) 2{{$food}} {{ $key }} 3@endforeach

でいけるのかな

投稿2020/05/20 13:58

編集2020/05/20 14:19
rururu3

総合スコア5545

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

rururu3

2020/05/20 14:08

あ、とれてるっぽいので @foreach ($foods as $key => $food) {{$food}} {{ $key }} @endforeach でいけるのかな
退会済みユーザー

退会済みユーザー

2020/05/20 14:25

ありがとうございます! 表示できました。 as $keyでキーの値を取得すればよかったんですね。 勉強になりました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問