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

Метод whereUlid

Метод whereUlid применяется к экземпляру маршрута для добавления ограничения на параметр, указанный в URI. Он гарантирует, что значение параметра соответствует формату ULID - 26-значному строковому идентификатору, состоящему из букв латинского алфавита и цифр (без учёта регистра). Первым параметром передаётся имя параметра маршрута.

Синтаксис

<?php use Illuminate\Support\Facades\Route; Route::get($uri, $callback)->whereUlid($parameter); ?>

Пример

Давайте создадим маршрут, который принимает ULID-идентификатор пользователя в качестве параметра:

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

Теперь маршрут /users/01H0X3Y5Z6A7B8C9D0E1F2G3H4 будет обработан, а запрос на /users/invalid-id вернёт ошибку 404.

Пример

Метод whereUlid можно использовать в группе маршрутов для применения ко всем вложенным путям:

<?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\PostController; use App\Http\Controllers\CommentController; Route::prefix('/posts')->group(function () { Route::get('/{post}', [PostController::class, 'show']) ->whereUlid('post'); Route::get('/{post}/comments/{comment}', [CommentController::class, 'show']) ->whereUlid('post') ->whereUlid('comment'); }); ?>

В этом примере оба параметра 'post' и 'comment' будут проверены на соответствие формату ULID.

Пример с контроллером

Рассмотрим полный пример использования метода whereUlid в контроллере:

<?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\ProductController; Route::get('/products/{product}', [ProductController::class, 'show']) ->whereUlid('product'); ?>
<?php namespace App\Http\Controllers; use App\Models\Product; use Illuminate\Http\Request; class ProductController extends Controller { public function show(Request $request, string $product) { $res = Product::where('ulid', $product)->firstOrFail(); return response()->json($res); } } ?>

Результат выполнения для корректного ULID-идентификатора:

{"id":1,"name":"Product 1","ulid":"01H0X3Y5Z6A7B8C9D0E1F2G3H4","price":99.99}

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

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