Как правило мы бы хотели наложить на параметры маршрутов некоторые ограничения. Давайте посмотрим на примере. Пусть у нас есть следующий маршрут:
<?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]+');
?>
Сделайте маршрут вида /user/:id
,
где вместо :id
должно быть число.
Попробуйте обратиться через браузер к этому маршруту, передав параметром число.
Попробуйте обратиться через браузер к этому маршруту, передав параметром не число. Расскажите, что будет.