Давайте теперь в файле с роутами будем делать так, чтобы маршруты обрабатывались заданными контроллерами.
Для этого вторым параметром метода 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
.