Глобальные ограничения параметров в Laravel


Можно сделать так, чтобы параметр с определенным именем всегда имел заданное ограничение в любых маршрутах. Это нужно прописовать в методе boot класса RouteServiceProvider.

Давайте для примера зададим глобальное ограничение для параметра с именем id:

<?php
public function boot()
{
Route::pattern('id', '[0-9]+');
}
?>
Теперь любой маршрут, у которого есть параметр id, выполнится только если id будет числом:

<?php
Route::get('/post/{id}', function ($id) {
return '!!!'; // только если число
});
?>