АКЦИЯ: бесплатные месячные курсы по созданию сайтов
на выбор: верстка, JavaScript, PHP, Python или фреймворки. Сегодня последний день для записи! Жми!
⊗pplrPmCnRt 21 of 194 menu
Вступайте в телеграмм-канал сайта code.mu: новинки, статьи, интервью, задачи, бесплатные курсы и тренинги. Жми для вступления:)

Маршруты для контроллеров в Laravel

Давайте теперь в файле с роутами будем делать так, чтобы маршруты обрабатывались заданными контроллерами.

Для этого вторым параметром метода get нужно передать массив, состоящий из двух элементов: имени контроллера с его пространством имен и имени действия. Общая схема выглядит так:

<?php Route::get(маршрут, [полное имя контроллера, имя действия]); ?>

Давайте зададим маршрут, который будет вызывать метод show нашего контроллера PostController:

<?php Route::get('/post', ['App\\Http\\Controllers\\PostController', 'show']); ?>

Как вы видите, указывать имя контроллера в виде строки не очень удобно. Это длинно и нужно удваивать слеши в пространстве имен (т.к. это строка). Существует более удобный (и общепринятый способ). Давайте его разберем.

Первым делом нужно в файле с роутами заюзать наш контроллер:

<?php use App\Http\Controllers\PostController; ?>

После этого мы сможем воспользоваться статическим свойством класса ::class. Модифицируем наш маршрут:

<?php Route::get('/post', [PostController::class, 'show']); ?>

Сделайте так, чтобы при обращении на адрес /user вызывалось действие show контроллера UserController.

Сделайте так, чтобы при обращении на адрес /user/all вызывалось действие all контроллера UserController.