Laravel8でAPIのルーティング設定時にエラーが起こる

先日、Laravel 8でAPI作成のためコントローラを作成していたときに、ネットの記事を参考にルーティングを書いていたのですが

BindingResolutionException Target class [xxxController] does not exist. が発生してしまい、解決までハマってしまいました。色々と調べたところバージョンの違いが原因でした。

私はroutes/api.phpで下記の様に設定したのですが

Route::get('/company','CompanyController@index');

Laravelのリファレンスを見るとこれはLaravel 7までの書き方のようで、投稿時点のLaravel 8では下記のように書くのが正解のようです。

use App\Http\Controllers\CompanyController

Route:get('/company',[CompanyController::class, 'index']

まだLaravel 8はリリースされて間もなく情報が少なく、また古い情報で溢れているので、検索をする際にはバージョンにも気をつけなければ行けないですね。

リファレンス情報
Laravel 7
https://readouble.com/laravel/7.x/ja/routing.html
Laravel 8
https://readouble.com/laravel/8.x/ja/routing.html

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA