Иногда возникает необходимость объединить несколько маршрутов в одну группу, чтобы присоединить к ним одного посредника или выполнить какое-нибудь действие.
Это можно выполнить с помощью метода группировки маршрутов.
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() - создает несколько групп маршрутов на ресурсные контроллеры.