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