【Laravel】エラー:Target class [○○Controller] does not exist.の解決法!
この記事からわかること
- 「Laravel入門第2版」で勉強中のエラー
- Target class [○○Controller] does not exist.の解決法
- Routeにコントローラを記述する方法
index
[open]
\ アプリをリリースしました /
友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-
posted withアプリーチ
「Laravel入門第2版」で学習中、ルーティングでコントローラを呼出時にエラーが起きて立ち止まってしまったのでし同じ悩みで立ち止まらないように周知したいと思います。
Target class [○○Controller] does not exist.の解決法
このエラーはクラスが存在しない時に発生するエラーです。「Laravel入門第2版」は発行されたのが少し前なので現在のLaravel8の記述方法と少し異なる部分が出てきてしまいます。
解決法:Routeに記述するパスをフルパスにする
アクションを追加する(P.42)
リスト2-8(Laravel7以前の書き方)
Route::get('hello', 'HelloController@index');
リスト2-8(Laravel8以降の書き方)
Route::get('hello', 'App\Http\Controllers\HelloController@index');
コントローラで作成したアクションメソッドをルーティングで呼び出して実行する際は第2引数にフルパス(Appから)で記載したアクションメソッドを指定しないといけなくなりました。
Route::get('アドレス', 'アクションメソッド(コントローラ)のフルパス');
Laravelのバージョンが変わったことにより、多少違う所が出てきてしまっています。
また立ち止まってしまう所があったら共有していきたいと思います。
出てきた用語の意味
- ルーティング:URLとLaravel内の表示させるページ(ファイル)を紐づける
- コントローラ:全体の処理を制御する役割、viewを呼び出したり、データを取得する
- アクション:コントローラに用意される処理そのもの
- アクションメソッド:アクションのメソッド
まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。
ご覧いただきありがとうございました。