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

Метод controller

Метод controller применяется к объекту маршрута и позволяет указать контроллер и метод, которые будут обрабатывать запросы по данному маршруту. Первым параметром передаётся имя класса контроллера, вторым - метод контроллера в виде строки. Также можно передать массив с классом контроллера и методом. Метод возвращает тот же объект маршрута для цепочки вызовов.

Синтаксис

<?php use Illuminate\Support\Facades\Route; Route::controller($controllerClass); Route::get($uri, [$controllerClass, $methodName]); ?>

Пример

Давайте свяжем маршрут с контроллером UserController и методом index:

<?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\UserController; Route::get('/users', [UserController::class, 'index']); ?>

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

"Route bound to UserController@index"

Пример

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

<?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\ArticleController; Route::controller(ArticleController::class)->group(function () { Route::get('/articles', 'index'); Route::get('/articles/{id}', 'show'); Route::post('/articles', 'store'); }); ?>

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

"All routes bound to ArticleController"

Пример

Давайте свяжем маршрут с методом контроллера через строковый синтаксис:

<?php use Illuminate\Support\Facades\Route; Route::get('/profile', 'ProfileController@show'); ?>

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

"Route bound to ProfileController@show"

Пример

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

<?php namespace App\Http\Controllers; class ProductController extends Controller { public function list() { $res = ['product 1', 'product 2', 'product 3']; return $res; } } ?>
<?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\ProductController; Route::get('/products', [ProductController::class, 'list']); ?>

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

["product 1", "product 2", "product 3"]

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

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