Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗pplrPmRtSPC 20 of 252 menu
◀ ▶

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

Ограничения можно накладывать на несколько параметров. Для этого нужно вызвать несколько методов where в виде цепочки либо передать массив в один вызов where.

Посмотрим на примере. Пусть у нас дан следующий маршрут с несколькими параметрами:

<?php Route::get('/post/{slug}/{id}', function ($slug, $id) { return 'post ' . $slug . ' ' . $id; }); ?>

Зададим этим параметрам соответствующие ограничения цепочкой:

<?php Route::get('/post/{slug}/{id}', function ($slug, $id) { return 'post ' . $slug . ' ' . $id; })->where('slug', '[a-z0-9_-]+')->where('id', '[0-9]+'); ?>

Тот же результат можно получить через массив:

<?php Route::get('/post/{slug}/{id}', function ($slug, $id) { return 'post ' . $slug . ' ' . $id; })->where([ 'slug' => '[a-z0-9_-]+', 'id' => '[0-9]+', ]); ?>

Сделайте маршрут вида /user/:id/:name, где вместо :id должно быть число, а вместо :name - строка, состоящая из маленьких латинских букв количеством более 2-х.

Сделайте маршрут вида /posts/:date, где вместо :date должна быть дата в формате год-месяц-день.

Сделайте маршрут вида /:year/:month/:day, где вместо :year должен быть год, вместо :month - месяц, вместо :day - день.

Сделайте маршрут вида /users/:order, где вместо :order должно быть одно из значений: 'name', 'surname' или 'age'.

Сделайте маршрут вида /product/:code, где code - ровно 4 цифры.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить