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

Правило Ulid

Правило Ulid относится к секции form и проверяет, что значение поля является валидным ULID. ULID (Universally Unique Lexicographically Sortable Identifier) - это 26-символьный идентификатор, состоящий из букв и цифр в формате Base32. Правило можно использовать как в форме, так и в виде аннотации/атрибута для сущности.

Синтаксис

new Ulid( message: 'Сообщение об ошибке' )

Пример

Давайте создадим форму с полем identifier и повесим на него правило Ulid:

<?php namespace App\Form; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\Extension\Core\Type\TextType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\OptionsResolver\OptionsResolver; use Symfony\Component\Validator\Constraints\Ulid; class ArticleType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options): void { $builder->add('identifier', TextType::class, [ 'constraints' => [ new Ulid(), ], ]); } public function configureOptions(OptionsResolver $resolver): void { $resolver->setDefaults([]); } } ?>

Пример

Давайте проверим валидное значение ULID:

<?php namespace App\Controller; use App\Form\ArticleType; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/article', name: 'article_form')] public function form(Request $request): Response { $form = $this->createForm(ArticleType::class); $form->submit([ 'identifier' => '01ARZ3NDEKTSV4RRFFQ69G5FAV', ]); $res = $form->isValid(); return new Response(var_export($res, true)); } } ?>

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

true

Пример

Давайте проверим невалидное значение ULID:

<?php namespace App\Controller; use App\Form\ArticleType; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/article', name: 'article_form')] public function form(Request $request): Response { $form = $this->createForm(ArticleType::class); $form->submit([ 'identifier' => 'abcde', ]); $res = $form->isValid(); return new Response(var_export($res, true)); } } ?>

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

false

Пример

Давайте выведем сообщение об ошибке при невалидном значении:

<?php namespace App\Controller; use App\Form\ArticleType; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/article', name: 'article_form')] public function form(Request $request): Response { $form = $this->createForm(ArticleType::class); $form->submit([ 'identifier' => 'abcde', ]); $errors = $form->get('identifier')->getErrors(); $res = []; foreach ($errors as $error) { $res[] = $error->getMessage(); } return new Response(var_export($res, true)); } } ?>

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

["This value is not a valid ULID."]

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

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