Группы маршрутов

Иногда возникает необходимость объединить несколько маршрутов в одну группу, чтобы присоединить к ним одного посредника или выполнить какое-нибудь действие.

Это можно выполнить с помощью метода группировки маршрутов.

Route::group(function () {
    Route::get('/', function () {
        // Uses first route...
    });

    Route::get('/user/profile', function () {
        // Uses  second route...
    });
});

При этом группе маршрутов передается замыкание, внутри которого указаны отдельные маршруты. По умолчанию группа маршрутов не выполняет никакого действия.

Присоединение посредника к группе маршрутов.

Чтобы не присоединять посредника к каждому маршруту, его можно определить на уровне группы маршрутов.

Route::middleware(['first', 'second'])->group(function () {
    Route::get('/', function () {
        // Uses first & second middleware...
    });

    Route::get('/user/profile', function () {
        // Uses first & second middleware...
    });
});

Префиксы маршрутов

Метод prefix можеть использоваться для определения общего префикса для группы маршрутов, например, необходимо добавить префикс admin каждому маршруту:

Route::prefix('admin')->group(function () {
    Route::get('/users', function () {
        // Соответствует "/admin/users" URL
    });
});

Префиксы имен маршрутов

С помощью метода name можно присвоить префикс к имени маршрутов в группе:

Route::name('admin.')->group(function () {
    Route::get('/users', function () {
        // Соответствует "admin.users"...
    })->name('users');
});

Маршруты субдоменов

Группы маршрутов можно использовать для обработки субдоменов.

Для этого применяется метод domain

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

Маршруты на ресурсные контроллеры

С помощью метода resource можно создать маршрут на ресурсный конроллер, который будет содержать все необходимые пути для CRUD.

Route::resource('article', ArticleController::class)

В результате будет создана группа маршрутов, которая будет содержать следующие методы:

GET - /article - index() - article.index

GET - /article{id} - show() - article.show

GET - /article/create - create() - article.create // первый этап создания - это вывод страницы с формой

POST - /article - store() - article.store // второй этап - сохранение данных формы

GET - /article{id}/edit - edit() - article.edit

PUT и PATCH - /article/{id} - update - article.update

DELETE  - /article/{id} - destroy() - article.destroy

resiurces() - создает несколько групп маршрутов на ресурсные контроллеры.