РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
415 of 1392 menu

Метод whereAlphaNumeric

Метод whereAlphaNumeric применяется к экземпляру маршрута и позволяет задать ограничение для одного или нескольких параметров в URI. В качестве аргумента передаётся ассоциативный массив, где ключом является имя параметра, а значением может быть строка с именем ограничения 'alpha-numeric' или регулярное выражение. Если используется строка 'alpha-numeric', то Laravel автоматически подставляет регулярное выражение ^[a-zA-Z0-9]+$. Метод возвращает тот же объект маршрута, что позволяет использовать его в цепочках вызовов.

Синтаксис

<?php Route::get($uri, $action)->whereAlphaNumeric($parameters); ?>

Пример

Давайте создадим маршрут для профиля пользователя, где параметр 'id' должен содержать только буквы и цифры:

<?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\UserController; Route::get('/user/{id}', [UserController::class, 'show']) ->whereAlphaNumeric('id'); ?>

Теперь маршрут сработает для запросов вида:

/user/123 /user/abc /user/abc123

И вернёт ошибку 404 для запросов, содержащих спецсимволы:

/user/abc-123 /user/abc_123 /user/abc.123

Пример

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

<?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\PostController; Route::get('/posts/{category}/{slug}', [PostController::class, 'show']) ->whereAlphaNumeric([ 'category' => 'alpha-numeric', 'slug' => 'alpha-numeric' ]); ?>

Примеры корректных запросов:

/posts/news/article123 /posts/tech/Laravel8

Примеры некорректных запросов:

/posts/news/article-123 /posts/tech/Laravel_8

Пример

Метод whereAlphaNumeric можно комбинировать с другими ограничениями, например с whereNumber для разных параметров:

<?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\ProductController; Route::get('/product/{category}/{id}', [ProductController::class, 'show']) ->whereAlphaNumeric('category') ->whereNumber('id'); ?>

Теперь параметр 'category' принимает только буквы и цифры, а параметр 'id' - только числа:

/product/electronics/42 /product/gadgets/100

При этом запрос /product/electronics/abc вернёт ошибку 404, так как 'id' не является числом.

Смотрите также

  • метод where,
    который позволяет задать произвольное регулярное выражение для параметров
  • метод whereNumber,
    который ограничивает параметр только цифрами
  • метод whereAlpha,
    который ограничивает параметр только буквами
  • метод whereUuid,
    который проверяет параметр на соответствие формату UUID
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить