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

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

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

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Laravel

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

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

1回答

1531閲覧

Laravel api作成 データが返ってこない

kuramoto

総合スコア0

Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

Laravel

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

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2021/06/07 16:14

編集2021/06/09 20:06

前提・実現したいこと

laravelでapiを作成しています。
drillsというテーブルに、id, user_id, title,が入っています。
例)) GET http://127.0.0.1:8000/api/drills/18 とすると、
drillsのuser_id が18のものが返ってきて欲しいです。

発生している問題・エラーメッセージ

drillsのid=18を作った人のuser_idが返ってきます。

{ "id": 17, "user_id": "19", "title": "hello", }, { "id": 18, "user_id": "19", "title": "word", }

該当のソースコード

lang

1 public function show(Drill $drill) 2 { 3 $item = Drill::where('user_id', $drill->user_id)->get(); 4 return response()->json([ 5 'data' => $item 6 ], 200); 7 8 }

試したこと

var_dumpでsqlの中を確かめてみました。

lang

1 public function show(Drill $drill) 2 { 3 $sql = Drill::where('user_id', $drill->user_id) 4 ->toSql(); 5 }

結果  GET http://127.0.0.1:8000/api/drills/18

string(42) "select * from `drills` where `user_id` = ?"

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

m.ts10806

2021/06/07 20:20

どのように呼び出してどのように結果を確認されているのでしょう。 あとはPHP側をデバッグしてください。
FKM

2021/06/08 04:20

var_dump($item -> toSql()); でどんなSQLになっているか確認してみてください。
kuramoto

2021/06/09 20:00

var_dumpで確認してみました。 string(42) "select * from `drills` where `user_id` = ?" user_idが指定されていないみたいです。
m.ts10806

2021/06/09 21:13

Laravelならdumpもしくはdd ?はプリペアドステートメントのパラメータです。 executeするときに値がバインドされるのでSQL時点ではそのままです(でもこれは普通にPHPやってきてたら知っていないといけない概念です)
FKM

2021/06/10 00:12

bladeの提示もお願いします
guest

回答1

0

自己解決

public function show($drill)
{
$item = Drill::where("user_id",$drill)->get();
return response()->json([
"user_id"=>$drill,
"data"=>$item
], 200);
}

一行目が(Drill $drill)となっていたので、Drillを消すと、パラメーターの値だけを取得することができました。

コメントありがとうございました????

投稿2021/06/12 01:54

kuramoto

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問