РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
398 of 1392 menu

Метод prefix

Метод prefix применяется к группе маршрутов и добавляет указанный префикс ко всем URL-адресам внутри группы. Первым параметром передаётся строка префикса, которую необходимо добавить к каждому маршруту в группе.

Синтаксис

<?php Route::prefix($prefix)->group(function () { // Маршруты внутри группы }); ?>

Пример

Давайте создадим группу маршрутов для административной панели с префиксом 'admin':

<?php use AppHttpControllersAdminDashboardController; use AppHttpControllersAdminUsersController; use AppHttpControllersAdminSettingsController; use IlluminateSupportFacadesRoute; Route::prefix('admin')->group(function () { Route::get('/dashboard', [DashboardController::class, 'index']); Route::get('/users', [UsersController::class, 'index']); Route::get('/settings', [SettingsController::class, 'index']); }); ?>

В результате все маршруты будут доступны по следующим URL-адресам:

"/admin/dashboard" "/admin/users" "/admin/settings"

Пример

Давайте объединим префикс с другими методами группировки, такими как middleware и name, для организации API версии 1:

<?php use AppHttpControllersApiV1ProductController; use AppHttpControllersApiV1OrderController; use AppHttpControllersApiV1UserController; use IlluminateSupportFacadesRoute; Route::prefix('api/v1') ->middleware('auth:sanctum') ->name('api.v1.') ->group(function () { Route::get('/products', [ProductController::class, 'index']) ->name('products.index'); Route::get('/orders', [OrderController::class, 'index']) ->name('orders.index'); Route::get('/users', [UserController::class, 'index']) ->name('users.index'); }); ?>

Теперь маршруты доступны по URL-адресам с префиксом 'api/v1' и имеют имена с префиксом 'api.v1.':

"/api/v1/products" -> имя маршрута "api.v1.products.index" "/api/v1/orders" -> имя маршрута "api.v1.orders.index" "/api/v1/users" -> имя маршрута "api.v1.users.index"

Пример

Давайте создадим вложенные группы с разными префиксами для организации модульной структуры приложения:

<?php use AppHttpControllersBlogPostController; use AppHttpControllersBlogCategoryController; use AppHttpControllersBlogCommentController; use IlluminateSupportFacadesRoute; Route::prefix('blog')->group(function () { Route::prefix('posts')->group(function () { Route::get('/', [PostController::class, 'index']); Route::get('/{id}', [PostController::class, 'show']); }); Route::prefix('categories')->group(function () { Route::get('/', [CategoryController::class, 'index']); Route::get('/{id}', [CategoryController::class, 'show']); }); Route::prefix('comments')->group(function () { Route::get('/post/{postId}', [CommentController::class, 'index']); Route::post('/post/{postId}', [CommentController::class, 'store']); }); }); ?>

Результат выполнения кода - все маршруты сгруппированы по логическим блокам:

"/blog/posts" "/blog/posts/{id}" "/blog/categories" "/blog/categories/{id}" "/blog/comments/post/{postId}"

Смотрите также

  • метод group,
    который создаёт группу маршрутов
  • метод name,
    который задаёт имя маршрута
  • метод middleware,
    который добавляет посредников к группе маршрутов
  • метод domain,
    который ограничивает маршруты по поддомену
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить