"Основы routing в Laravel: от простых маршрутов до групп"
Routing в Laravel — одна из ключевых частей фреймворка. Именно маршруты определяют, как приложение реагирует на HTTP-запросы пользователя.
В этой статье разберём:
- как работает Laravel routing;
- создание маршрутов;
- параметры route;
- группы маршрутов;
- именованные маршруты;
- redirect и middleware.
Что такое Laravel Route
Laravel route — это правило, которое связывает URL и обработчик запроса.
Все маршруты находятся в:
routes/web.php
или:
routes/api.php
Простейший маршрут в Laravel
Пример:
use Illuminate\Support\Facades\Route;
Route::get('/', function () {
return 'Hello Laravel';
});
Этот маршрут отвечает на GET-запрос к главной странице.
HTTP методы в Laravel
Laravel HTTP routing поддерживает все основные методы:
Route::get();
Route::post();
Route::put();
Route::patch();
Route::delete();
Также можно использовать:
Route::match(['get', 'post'], '/form', function () {
//
});
или:
Route::any('/page', function () {
//
});
Параметры маршрутов
Обязательные параметры
Route::get('/user/{id}', function ($id) {
return $id;
});
Необязательные параметры
Route::get('/user/{name?}', function ($name = 'Guest') {
return $name;
});
Ограничения параметров
Laravel routing позволяет задавать regex-ограничения:
Route::get('/user/{id}', function ($id) {
//
})->where('id', '[0-9]+');
Именованные маршруты
Laravel route name используется очень часто.
Route::get('/dashboard', function () {
//
})->name('dashboard');
Создание URL:
route('dashboard');
Redirect в Laravel
Laravel redirect помогает перенаправлять пользователя.
Простой redirect
return redirect('/login');
Redirect по имени маршрута
return redirect()->route('dashboard');
Группы маршрутов
Группы помогают организовать routing.
Prefix
Route::prefix('admin')->group(function () {
Route::get('/users', function () {
//
});
});
Middleware группы
Route::middleware(['auth'])->group(function () {
Route::get('/profile', function () {
//
});
});
API Routes в Laravel
Для API используется:
routes/api.php
Особенности:
- stateless;
- JSON responses;
- префикс
/api.
Route Resource
Laravel умеет автоматически создавать CRUD routes.
Route::resource('posts', PostController::class);
Это создаёт:
- index;
- create;
- store;
- show;
- edit;
- update;
- destroy.
Проверка списка маршрутов
Полезная команда:
php artisan route:list
Кеширование маршрутов
Для production:
php artisan route:cache
Очистка:
php artisan route:clear
Лучшие практики Laravel Routing
Рекомендуется:
- использовать route names;
- выносить логику в controllers;
- группировать routes;
- разделять web и api;
- минимизировать closures в production.
Итоги
Laravel routing — мощная и удобная система маршрутизации.
С помощью route в Laravel можно:
- обрабатывать HTTP-запросы;
- организовывать API;
- строить CRUD;
- использовать middleware;
- создавать гибкую архитектуру приложения.
Правильно организованный routing делает Laravel-проект масштабируемым и удобным для поддержки.