Метод whereNumber
Метод whereNumber применяется к объекту маршрута и позволяет ограничить параметр маршрута только числовыми значениями. В качестве аргумента метод принимает имя параметра, который должен содержать только цифры. Это особенно полезно для идентификаторов моделей, номеров страниц и других числовых идентификаторов. Метод возвращает тот же объект маршрута, что позволяет использовать цепочки вызовов.
Синтаксис
<?php
Route::get($url, $callback)->whereNumber($parameter);
?>
Пример
Давайте ограничим параметр 'id' в маршруте для отображения пользователя только числами:
<?php
use Illuminate\Support\Facades\Route;
use AppHttpControllers\UserController;
Route::get('/user/{id}', [UserController::class, 'show'])
->whereNumber('id');
?>
Теперь маршрут будет совпадать только для URL типа /abcde, но не для /abcde.
/user/123 // matches
/user/456 // matches
/user/abcde // does not match
Пример
Метод whereNumber можно использовать для нескольких параметров маршрута:
<?php
use Illuminate\Support\Facades\Route;
Route::get('/posts/{category}/{page}', function ($category, $page) {
return "Category: $category, Page: $page";
})->whereNumber('page');
?>
Результат выполнения для разных URL:
/posts/tech/1 // "Category: tech, Page: 1"
/posts/tech/2 // "Category: tech, Page: 2"
/posts/tech/abcde // 404 Not Found
Пример
Давайте используем whereNumber вместе с другими ограничениями для одного маршрута:
<?php
use Illuminate\Support\Facades\Route;
use AppHttpControllers\ProductController;
Route::get('/product/{category}/{id}', [ProductController::class, 'show'])
->whereAlpha('category')
->whereNumber('id');
?>
В этом примере параметр 'category' ограничен только буквами, а параметр 'id' - только числами. Это обеспечивает строгую валидацию обоих параметров маршрута.
/product/tech/123 // matches
/product/tech/abcde // does not match
/product/123/123 // does not match
Смотрите также
-
метод
where,
который позволяет задать произвольное регулярное выражение для параметра -
метод
whereAlpha,
который ограничивает параметр только буквенными символами -
метод
whereAlphaNumeric,
который ограничивает параметр буквенно-цифровыми символами -
метод
whereUuid,
который ограничивает параметр UUID форматом