Ограничения параметров маршрутов в Laravel


Как правило мы бы хотели наложить на параметры маршрутов некоторые ограничения. Давайте посмотрим на примере. Пусть у нас есть следующий маршрут:

<?php
Route::get('/post/{id}', function ($id) {
return 'пост ' . $id;
});
?>
Очевидно, что id должен быть числом. Однако, сейчас наш маршрут не следит за этим и поймает любой адрес такого вида, например, /post/eee.

Давайте наложим ограничение на наш параметр. Это делается с помощью метода where и регулярных выражений:

<?php
Route::get('/post/{id}', function ($id) {
return 'пост ' . $id;
})->where('id', '[0-9]+');
?>