【Laravel】ルーティングのグループ化

Laravel

はじめに

Laravelのルーティング(web.php)は、同じ階層のページなどを表示する際では記述をまとめることができます。

よく見かける記述ではありますが、期間を空けて見ると何だったっけ?となることがあったので、この機会に整理しました。

middleware

認証周りなど、ミドルウェアを挟みたい時に使います、

Route::middleware(['first', 'second'])->group(function () {
    Route::get('/', function () {
        // 1番目と2番目のミドルウェアを使用
    });

    Route::get('/user/profile', function () {
        // 1番目と2番目のミドルウェアを使用
    });
});

domain

割り当てるサブドメインを処理するためにも使用できます。
※まだ実務で使ったことがないですね・・・

Route::domain('{account}.example.com')->group(function () {
Route::get('user/{id}', function ($account, $id) {
//
});
});

prefix

これが一番使うかもです。
prefix(‘hoge’)を記述すると、hoge/のURLにアクセスができます。

Route::prefix('admin')->group(function () {
    Route::get('/users', function () {
        // /admin/usersのURLに一致
    });
});

name

下の例でいうとRoute::getの中にあり、ビューで ->name('admin.users'); という「名前付きルート」の記述も、共通部分はプレフィックスでまとめることができます。
ドットをつけることをお忘れなく。

Route::name('admin.')->group(function () {
    Route::get('/users', function () {
        // ルートに"admin.users"が名付けられる
    })->name('users');
});

おわりに

記述をスッキリできるので、まとめられるところは積極的に使っていきたいです。

リーダブルを参考にしました。

ルーティング 8.x Laravel

コメント

タイトルとURLをコピーしました