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