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

Глобальные ограничения параметров в Laravel

Можно сделать так, чтобы параметр с определенным именем всегда имел заданное ограничение в любых маршрутах. Это нужно прописывать в методе boot класса AppServiceProvider.

Давайте для примера зададим глобальное ограничение для параметра с именем id:

<?php namespace App\Providers; use Illuminate\Support\Facades\Route; use Illuminate\Support\ServiceProvider; class AppServiceProvider extends ServiceProvider { public function boot(): void { Route::pattern('id', '[0-9]+'); } } ?>

Теперь любой маршрут, у которого есть параметр id, выполнится только если id будет числом:

<?php Route::get('/post/{id}', function ($id) { return '!!!'; // only if numeric }); ?>

Наложите глобальное ограничение на параметр slug. Пусть он может содержать буквы и цифры, а также дефис и подчеркивание.

Наложите глобальное ограничение на параметр id - только цифры. Проверьте маршрут /user/:id с числом и со строкой.

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