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

Route::resource

Метод resource класса Route регистрирует набор маршрутов для стандартных CRUD-операций. Первым параметром передаётся URI-префикс, вторым - имя контроллера. Метод автоматически создаёт маршруты для методов index, create, store, show, edit, update и destroy. Можно ограничить набор действий с помощью параметра only или except. Также доступно переопределение имён маршрутов через параметр names.

Синтаксис

<?php use Illuminate\Support\Facades\Route; Route::resource($name, $controller, $options = []); ?>

Пример

Зарегистрируем ресурсный контроллер для управления статьями:

<?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\ArticleController; Route::resource('articles', ArticleController::class); ?>

Этот код создаст следующие маршруты:

[ "GET|HEAD /articles (articles.index)", "GET /articles/create (articles.create)", "POST /articles (articles.store)", "GET /articles/{article} (articles.show)", "GET /articles/{article}/edit (articles.edit)", "PUT|PATCH /articles/{article} (articles.update)", "DELETE /articles/{article} (articles.destroy)" ]

Пример

Ограничим набор действий только для чтения данных:

<?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\ArticleController; Route::resource('articles', ArticleController::class, [ 'only' => ['index', 'show'] ]); ?>

Результат выполнения кода:

[ "GET|HEAD /articles (articles.index)", "GET /articles/{article} (articles.show)" ]

Пример

Исключим методы для удаления и обновления:

<?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\ArticleController; Route::resource('articles', ArticleController::class, [ 'except' => ['destroy', 'update'] ]); ?>

Результат выполнения кода:

[ "GET|HEAD /articles (articles.index)", "GET /articles/create (articles.create)", "POST /articles (articles.store)", "GET /articles/{article} (articles.show)", "GET /articles/{article}/edit (articles.edit)" ]

Пример

Переопределим имена всех маршрутов для контроллера категорий:

<?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\CategoryController; Route::resource('categories', CategoryController::class, [ 'names' => [ 'index' => 'categories.list', 'create' => 'categories.build', 'store' => 'categories.save', 'show' => 'categories.view', 'edit' => 'categories.modify', 'update' => 'categories.update', 'destroy' => 'categories.remove' ] ]); ?>

Результат выполнения кода:

[ "GET|HEAD /categories (categories.list)", "GET /categories/create (categories.build)", "POST /categories (categories.save)", "GET /categories/{category} (categories.view)", "GET /categories/{category}/edit (categories.modify)", "PUT|PATCH /categories/{category} (categories.update)", "DELETE /categories/{category} (categories.remove)" ]

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

  • метод apiResource,
    который регистрирует ресурсные маршруты для API без методов create и edit
  • метод get,
    который регистрирует маршрут для GET-запросов
  • метод post,
    который регистрирует маршрут для POST-запросов
  • метод group,
    который группирует маршруты с общими атрибутами
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить