Ограничения можно накладывать на несколько
параметров. Для этого нужно вызвать
несколько методов where
в виде цепочки.
Посмотрим на примере. Пусть у нас дан следующий маршрут с несколькими параметрами:
<?php
Route::get('/post/{slug}/{id}', function ($slug, $id) {
return 'пост ' . $slug . ' ' . $id;
});
?>
Зададим этим параметрам соответствующие ограничения:
<?php
Route::get('/post/{slug}/{id}', function ($slug, $id) {
return 'пост ' . $slug . ' ' . $id;
})->where('slug', '[a-z0-9_-]+')->where('id', '[0-9]+');
?>
Сделайте маршрут вида /user/:id/:name
,
где вместо :id
должно быть число,
а вместо :name
- строка, состоящая
из маленьких латинских букв количеством более
2
-х.
Сделайте маршрут вида /posts/:date
,
где вместо :date
должна быть дата
в формате год-месяц-день.
Сделайте маршрут вида /:year/:month/:day
,
где вместо :year
должен быть год,
вместо :month
- месяц, вместо :day
- день.
Сделайте маршрут вида /users/:order
,
где вместо :order
должно быть одно
из значений: 'name'
, 'surname'
или 'age'
.