Глобальные ограничения параметров в Laravel
Можно сделать так, чтобы параметр с определенным
именем всегда имел заданное ограничение в любых
маршрутах. Это нужно прописовать в методе boot
класса RouteServiceProvider.
Давайте для примера зададим глобальное ограничение
для параметра с именем id:
App\Providers\RouteServiceProvider.php<?php
public function boot()
{
Route::pattern('id', '[0-9]+');
}
?>
Теперь любой маршрут, у которого есть параметр
id, выполнится только если id будет числом:
routes/web.php<?php
Route::get('/post/{id}', function ($id) {
return '!!!'; // только если число
});
?>
Задание 1
Наложите глобальное ограничение
на параметр slug. Пусть
он может содержать буквы и цифры,
а также дефис и подчеркивание.