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