Ограничения на несколько параметров маршрутов в Laravel
Ограничения можно накладывать на несколько
параметров. Для этого нужно вызвать
несколько методов 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'.