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

Правило Uuid

Правило Uuid относится к группе ограничений валидации. Оно вешается на поле формы или свойство сущности и проверяет, что переданное значение соответствует формату UUID. Это может быть UUID любой версии (v1, v3, v4, v5 и т.д.). Правило не проверяет существование объекта с таким UUID в базе данных, а только лишь его синтаксическую корректность.

Синтаксис

#[Uuid]

Либо в виде опции поля формы:

'constraints' => [ new Uuid(), ],

Пример

Давайте создадим простую форму с полем identifier, к которому применено правило Uuid:

<?php namespace AppForm; use SymfonyComponentFormAbstractType; use SymfonyComponentFormExtensionCoreTypeTextType; use SymfonyComponentFormFormBuilderInterface; use SymfonyComponentOptionsResolverOptionsResolver; use SymfonyComponentValidatorConstraintsUuid; class ArticleType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options): void { $builder->add('identifier', TextType::class, [ 'constraints' => [ new Uuid(), ], ]); } public function configureOptions(OptionsResolver $resolver): void { $resolver->setDefaults([ // ... ]); } } ?>

Пример

Давайте проверим работу правила в контроллере. Передадим в форму корректный UUID и проверим, пройдёт ли валидация:

<?php namespace AppController; use AppFormArticleType; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationRequest; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentRoutingAttributeRoute; class ArticleController extends AbstractController { #[Route('/article', name: 'article_form')] public function index(Request $request): Response { $form = $this->createForm(ArticleType::class); $form->submit([ 'identifier' => '123e4567-e89b-12d3-a456-426614174000', ]); if ($form->isValid()) { return new Response('valid uuid'); } return new Response('invalid uuid'); } } ?>

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

"valid uuid"

Пример

А теперь передадим в форму строку, которая не является UUID:

<?php namespace AppController; use AppFormArticleType; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationRequest; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentRoutingAttributeRoute; class ArticleController extends AbstractController { #[Route('/article', name: 'article_form')] public function index(Request $request): Response { $form = $this->createForm(ArticleType::class); $form->submit([ 'identifier' => 'abcde', ]); if ($form->isValid()) { return new Response('valid uuid'); } return new Response('invalid uuid'); } } ?>

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

"invalid uuid"

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

  • правило Ulid,
    которое проверяет корректность ULID
  • тип поля UuidType,
    который создаёт поле для ввода UUID
  • правило Regex,
    которое проверяет значение по регулярному выражению
  • правило NotBlank,
    которое проверяет, что значение не пустое
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить