Laravelデバック方法:ddでコントローラの処理を見える化しよう

Laravel 入門講座

Laravelでコントローラの処理を可視化するには、ddが使えます。

Laravelのデバック作業で必須といえる関数です。

実際にどのように使うか、フォームからコントローラに受け渡された値をチェックする方法を分かりやすく解説しますね。

ddとはLaravelのヘルパ関数

まずddとは何かですが、Laravelのヘルパ関数です。

Junko
Junko

ヘルパ関数とは、PHPとは別に、Laravelが用意してくれているお助け関数です。

Laravelの公式マニュアルには、こんなふうに書いてあります。

dd関数は指定された変数の内容を表示し、スクリプトの実行を停止します。

参考:Laravel公式マニュアル Laravel 8.x ヘルパ

変数の内容を表示し、そこで処理をストップします。

ddの便利な使い方としては、コントローラで行われている処理の可視化です。デバック作業では本当にお世話になります。

実際にLaravelのコントローラにddを入れてみる

では実際にddを使ってみましょう。

フォームで入力した値をデータベースに保存できない場合に、エラーの原因を見つけるという想定で使ってみます。

下記のようなフォームを通じて投稿した値を、データベースに保存したいとします。

ところが、エラーになってしまいました。

こういった時、保存の処理を書いたコントローラのメソッドに、ddを加えます。

メソッドの一番最初に  dd($request);と入れておけば、フォームから受け取った値がどうなっているかが分かります。

【ddを入れた後のコントローラ例】

Junko
Junko

ddの位置や変数は、場合によって変えてくださいね。

ddを加えた後、もう一度フォームからデータを投稿してみましょう。すると、ブラウザが次のように黒画面になります。

【ddを使って表示される画面例】

  • requestの横の▶をクリックすると、#parametersが表示されます。
  • #parametersの横の▶をクリックすると、実際にコントローラに受け渡された値が表示できます。

これによって、ちゃんと値を受け渡せているか、どんな値が受け渡されているかがチェックできます。

なおddを使っても上記のように黒画面にならず、ブラウザにエラーメッセージが表示されることもあります。その場合は、そもそもコントローラに値が受け渡せていないと考えられます。

ということは、ルート設定あたりに問題の原因がありそうだと推測できます。

こんなふうにddを使うことで、エラーの原因を特定しやすくなります。

さいごに

今回はddを使ってコントローラが受け取った値を可視化する方法を紹介しました。

メソッドの途中でddを使えば、処理の途中の変数を可視化できます。

エラーメッセージと共に、エラー解決に役立ててくださいね。

なお、Ajaxやwebhookからのアクセスは、ブラウザに表示できないため、ddも使えません。

Junko
Junko

こんなときどうするかは、また別の記事で解説予定です。

 

コメント

タイトルとURLをコピーしました