Laravelでデータベースからデータを取り出す際、コントローラーに書いたクエリでどんな結果を受け取っているのか確認したい時ってありますよね。特にエラーが起きてる時など、本当に値を取得できてるのか分からなかったりするので。
じゃあ、どうやってLaravelでクエリの結果を確認するかですが、
コントローラーに、echo $data; のように書く事で確認できます。
phpのecho, print(), などを使う事で確認する事ができます。
上の図のように、例えば、クエリで取り出した値が$dataに代入されるなら、
echo $data;
もしくは
print($data);
と書いて、保存します。
そして、ブラウザで、return view に指定したページが表示されるURLにアクセスしてください。(return redirectしてる場合は、うまく表示されないので注意)
すると、ブラウザの一番上部分に、取得したクエリが連想配列(オブジェクト型)として、そのまま出ます。
{
"id": 2
"created_at" : "2020-11-01 22:37:26"
・・・
}
のように、情報が出力されてるのが分かります。
といっても、echoやprint()だと、なぜか日本語部分が文字化けします。
文字化け自体は、こちらのサイトのような文字化け変換サイトを使えば、実際の日本語が表示できます。
このサイトで見る限り、echoだとUTF-16BEで出力されちゃうのか!?
もしくは、print_r() や var dump()などだと、文字化けせず日本語表示されますが、余計な情報も出るので、見づらいです。
print_rだと、普通の連想配列ではない形式となり、見づらいのが難点だが、文字化けはしない。
- echo, print などを使っても何も表示されないのであれば、実際クエリで何も取得できてない可能性が高いです。(クエリ文を修正する必要がある)
- 取得できてるのに、ブレードで表示されないとなると、クエリの後の部分か、ブレード側でミスがあるという事になりますね。