Определить маршруты приложения можно в файле routes/web.php
или routes/api.php
.
Для определения маршрутов имеется специальный фасад Route
. Пример:
Route::get('/path', 'Controller@method').
Контроллеры в Laravel это классы HTTP запросов. Они реализуют любую логику и вывод (response).
Кроме обычных контроллеров, Laravel позволяет создавать api-контроллеры и ресурные контроллеры. Отличие их в следующем: api-контроллер уже содержат методы для реализации CRUD-запросов (Create, Read, Update, Delete); ресурсный контроллер помимо этих методов содержит еще два метода, реализующие формы создания и редактирования; а при создании обычного контроллера, мы получаем пустой класс.
Создание обычного контроллера
php artisan make:controller ProductController
Создание api-контроллера
php artisan make:controller ProductController --api
Создание ресурсного контроллера
php artisan make:controller ProductController --resource
Из экшна (или метода) контроллера мы можем передать данные в view с помощью compact()
return view('index', compact('products'));
Методы маршрутизатора
Route::get($uri, $callback); Route::post($uri, $callback); Route::put($uri, $callback); Route::patch($uri, $callback); Route::delete($uri, $callback);
Где:
get - вывод данных
post - вставка данных
put и patch - обновление данных
delete - удаление
И put, и patch используются для обновления ресурсов, но put обычно заменяет весь ресурс, а patch обновляет определенные поля.
При определении нескольких маршрутов, которые используют один и тот же URI, маршруты, использующие методы get
, post
, put
, patch
, delete
и options
, должны быть определены перед маршрутами, использующими методы any
, match
и redirect
. Это гарантирует, что входящий запрос соответствует правильному маршруту.
Практика