はじめての方へ・ステップ 12 / 12
困ったときと、次に読むページ
エラーが出たときの読み方、よく出るエラーと直し方、ログと dump・dd での調べ方をまとめます。メモ帳アプリの次に読むとよいページも紹介します。
アプリを作っていると、エラーは必ず出ます。エラーは「どこがおかしいか」を教えてくれる手がかりです。こわがらずに読めば、たいてい直せます。このページでは、エラーの読み方と調べ方、そしてメモ帳アプリの次に何を学ぶとよいかをまとめます。
エラーの画面の読み方#
.env の APP_DEBUG が true のあいだは、エラーが起きると、くわしい原因の画面が出ます。
- いちばん上の大きな文字:エラーの種類(
InvalidArgumentExceptionなど) - その下の文:何がおかしいかの説明(ここをいちばんよく読む)
- その下のコード:エラーが起きた場所。問題の行が色付きで目立つようになっている
まず説明の文を読み、次に色の付いた行の、自分で書いたファイル(routes/web.php や app/Http/Controllers/…)を見ます。vendor/ の中のファイルは Laravel 本体なので、ふつうは自分のファイルのほうに原因があります。
注意
APP_DEBUG=true は、作っているあいだだけの設定です。公開する本番のサーバーでは、必ず false にします。true のままだと、エラーの画面から、秘密の設定の値が見えてしまうおそれがあります。
よく出るエラーと直し方#
| 出る文 | 直し方 |
|---|---|
View [memos.indx] not found. |
ビューのファイルが見つからない。view() に書いた名前と、resources/views の中のファイル名・フォルダ名が合っているかを見る |
Undefined variable $name |
ビューで使った変数が渡されていない。view('…', ['name' => …]) で渡しているかを見る |
no such table: memos |
表が無い。php artisan migrate を実行したかを見る |
419 Page Expired |
フォームの合言葉が無い。<form> の中に @csrf があるかを見る |
The POST method is not supported for route … |
フォームの送り方が合っていない。編集なら @method('PUT')、削除なら @method('DELETE') を書いたかを見る |
404 Not Found |
その URL のルートが無いか、その番号のデータが無い。php artisan route:list でルートを見る |
Add [title] to fillable property to allow mass assignment … |
一括で入れてよい列が決まっていない。モデルに #[Fillable([...])] を書き、その列を入れたかを見る |
ヒント
エラーの文は英語ですが、知らない単語を1つずつ調べれば読めます。「not found」は見つからない、「undefined」は決まっていない、「not supported」は使えない、という意味です。
ログを見る#
エラーは、画面だけでなくログ(記録のファイル)にも書かれます。場所は storage/logs/laravel.log です。composer run dev を動かしているターミナルにも、logs の行としてログが流れます。
自分でログに書くこともできます。たとえばコントローラーの中で、次のように書きます。
use Illuminate\Support\Facades\Log;
Log::info('メモを保存します', ['title' => $request->input('title')]);
くわしくはログにまとめています。
中身をのぞく(dump と dd)#
「この変数に、いま何が入っているのか」を知りたいときは、dump() か dd() を使います。
public function index()
{
$memos = Memo::latest()->get();
dump($memos->count()); // 画面に中身を出して、そのまま続ける
dd($memos); // 画面に中身を出して、そこで止める
return view('memos.index', ['memos' => $memos]);
}
dump()は、中身を画面に出して、そのまま処理を続けますdd()は、中身を画面に出して、そこで処理を止めます
調べ終わったら、消すのを忘れないようにしましょう。
次に読むページ#
メモ帳アプリで使ったことは、どれも入口の部分だけです。次は、作ったものに近いところから広げていくのがおすすめです。
| もっと知りたいこと | 読むページ |
|---|---|
| URL の決め方をもっと知りたい | ルーティング |
| 画面の部品をもっと使いこなしたい | Blade テンプレート・Blade コンポーネントとレイアウト |
| 入力のチェックを増やしたい・日本語にしたい | バリデーション(入力のチェック)・バリデーションのルール一覧 |
| データベースの使い方を広げたい | Eloquent の基本・マイグレーション |
| ユーザーと投稿のように、表どうしをつなげたい | リレーション(表どうしのつながり) |
| メモが増えたら、ページを分けたい | ページ送り(ページネーション) |
| ログインのしくみを付けたい | スターターキット・ログインのしくみ(認証) |
| 自分のメモだけを直せるようにしたい | できることを決める(認可) |
| 正しく動くかをプログラムで確かめたい | テストのはじめかた |
| 作ったアプリを公開したい | 本番へ公開する(デプロイ) |
公式ドキュメント(英語)
2026年10月5日時点の内容をもとに、日本語でまとめています。