🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Laravel

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

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

Q&A

解決済

1回答

7715閲覧

PHP(Laravel)でDBから複数データを取得し,JSONで返したい時

antino

総合スコア15

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Laravel

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

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

0グッド

0クリップ

投稿2019/10/31 12:30

PHP(Laravel)でDBからデータを取得し、それをJSONで返したいです。

現状

とあるテーブルのタイトル名で検索をかけるプログラムを作成しています。

$item=Item::where('title',$request->title)->get(); $content_array=array(); $content_num=array(); for($i=0;$i++;$i<3){ $content_array=( $content_num[$i]=>array( [ 'image' => $item[$i]->image], [ 'title' => $item[$i]->title], [ 'description' => $item[$i]->description], [ 'value' => $item[$i]->value] ) ); }
return response()->json([ [ 'image' => $item[0]->image], [ 'title' => $item[0]->title], [ 'description' => $item[0]->description], [ 'value' => $item[0]->value], ]);

$item=Item::where('title',$request->title)->get()
で取得できるデータを全てjsonで返したく,二次元配列を意識して作っているのですが,解法の手口がつかめません。
どうしたら良いでしょうか。

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

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

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

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

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

m.ts10806

2019/10/31 14:07

どんなJSONにしたいのか分からないので、なんとも。 通常は配列にしてjson関数通せばちゃんとJSON文字列にはなります。
antino

2019/11/01 00:33

ご指摘いただきありがとうございます https://api.gnavi.co.jp/api/manual/restsearch/ ぐるなび apiのレスポンス部分のrestごとのidやupdate_dateを取得できるようなjsonにしたいと思っています。 なので,rest[0][image]=$item[$0]->image rest[1][title]=$item[$1]->title といった風に取得できるよう、データを返したいです.
guest

回答1

0

ベストアンサー

collectionは簡単に配列に変換できますよ。

php

1$item=Item::where('title',$request->title)->get(); 2return response()->json($item->toArray());

なお、collectionのまま渡しても、同じ結果になります。

php

1return response()->json($item);

さらに言うなら、わざわざ response()->json();としなくても。
laravelは、配列をレスポンスとして返そうとすると、自動でjsonデータとして返却してくれるご親切仕様です。

php

1return $item->toArray(); 2return $item;//こちらもcollectionのままでも同じ結果になります。

何をご参考に開発されているのかは分かりませんが、
laravelの公式リファレンスも、一度目を通してみると良いと思いますよ!

投稿2019/11/01 07:07

mix-peach

総合スコア1910

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

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

antino

2019/11/01 10:07

おっしゃる通りでした!ありがとうございます。 しっかりと公式リファレンスを読む癖をつけます...!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問