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

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

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

<?php public function boot() { Route::pattern('id', '[0-9]+'); } ?>

Теперь любой маршрут, у которого есть параметр id, выполнится только если id будет числом:

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

Наложите глобальное ограничение на параметр slug. Пусть он может содержать буквы и цифры, а также дефис и подчеркивание.