LoginSignup
1
0

More than 1 year has passed since last update.

【Laravel】 ルートグループで controller メソッドを使ってスッキリ表示!【ver.8.80 新機能】

Last updated at Posted at 2022-01-20

Laravel 8.80 からの機能でルートグループに controller メソッド が追加されました。ネスト内にコントローラ名を書くことなしにルーティングすることができるので、今まで以上にスッキリした書き方が可能になります。

通常、グループのネスト内にコントローラ名を記述していました。

[before] web.php
use App\Http\Controllers\BlogController;
use Illuminate\Support\Facades\Route;

Route::prefix('blog')
    ->as('blog.')
    ->group(function () {
        Route::get('/', [BlogController::class, 'index'])->name('index');
        Route::get('/create', [BlogController::class, 'create'])->name('create');
        Route::post('/', [BlogController::class, 'store'])->name('store');
        Route::get('/{blog}', [BlogController::class, 'show'])->name('show');
    });

Laravel 8.80 以降では controller メソッド を使用してネスト内のコントローラ名の記述を省略可能になりました

[after] web.php
use App\Http\Controllers\BlogController;
use Illuminate\Support\Facades\Route;

Route::prefix('blog')
    ->as('blog.')
+   ->controller(BlogController::class) // controllerメソッドを追加
    ->group(function () {
+       // ネスト内のコントローラ名を省略できます
+       Route::get('/', 'index')->name('index');
+       Route::get('/create', 'create')->name('create');
+       Route::post('/', 'store')->name('store');
+       Route::get('/{blog}', 'show')->name('show');
    });

ネスト内に同名のコントローラが多ければ、今回新しく追加されたcontroller メソッド を使用してみると良いかもしれません。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0