Laravel8でのルーティングで、コントローラーの指定の仕方4選
すごい久しぶりにqiita。
久しぶりにLaravel触ろうと思ったらLaravel8が出てて、試してみる。
Laravel7以前のと比べてRouteの書き方変わってたのでメモ。
(ぜんぜん大した話じゃないけどまだインターネッツに残っていないと思ったものは積極的に残すスタイル。)
前提: 今までの書き方
Route::get('hoge/fuga', 'Hoge\FugaController@index');
Route::get('hoge/fuga', 'Hoge\FugaController@index');
Laravel7までは有効。Laravel8ではエラーになります。
1: 教科書どおりがいい派
use App\Http\Controllers\Hoge\FugaController;
Route::get('hoge/fuga', [FugaController::class, 'index']);
use App\Http\Controllers\Hoge\FugaController;
Route::get('hoge/fuga', [FugaController::class, 'index']);
使うクラスはすべてuseで指定しておいたほうが見通しがいい人向け。
2: useうざい派
Route::get('hoge/fuga', [App\Http\Controllers\Hoge\HugaController::class, 'index']);
Route::get('hoge/fuga', [App\Http\Controllers\Hoge\HugaController::class, 'index']);
useはなくして、並んだ絶対パス眺めるのが好きな人向け。
3: 前みたいにシンプルに書きたい派
Route::get('hoge/fuga', '\App\Http\Controllers\Hoge\FugaController@index');
Route::get('hoge/fuga', '\App\Http\Controllers\Hoge\FugaController@index');
Laravel8での新作法に違和感を感じる人向け
4: 完全に前のに戻したい派
app/Providers/RouteServiceProvider.php
を変更する必要があり、コメントアウトされている
// protected $namespace = 'App\\Http\\Controllers';
のコメントアウトを外して有効にする。
Route::get('hoge/fuga', 'Hoge\FugaController@index');
で以前と変わらない書き方ができる。
ぼくは2です。
いじょー!
Author And Source
この問題について(Laravel8でのルーティングで、コントローラーの指定の仕方4選), 我々は、より多くの情報をここで見つけました https://qiita.com/M_Ishikawa/items/8527c3193072226f0686著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .