LaravelでActionを切って躓いた話
概要
LaravelでControllerではなく、Actionというクラスを定義して、実装しようとして躓いた話をまとめます。
やりたかったこと
- postsってルーティングにアクセスしたら、
App\Http\Controllers\Posts\IndexAction
が呼ばれる
起きたこと
- postAutoDumpで下記のエラーが発生した
UnexpectedValueException: Invalid route action: [App\Http\Controllers\Posts\IndexAction].
原因
Posts\IndexAction
のメソッドを、 __invoke
として居ないことが原因でした。
ルーティングでは、__invoke
を前提に書いているのに、 index
とメソッド定義していたので、エラーになっていたようでした。
Route::post('review', 'Review\\RegisterAction');
ちゃんと、 __invoke
で定義することで解決しました。