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

Правило Isbn

Правило Isbn относится к классу ограничений валидации Symfony и применяется к полю формы или свойству сущности. Оно проверяет, что переданное значение является корректным ISBN-10 или ISBN-13. Первым параметром можно передать тип ISBN: isbn10, isbn13 или null для проверки обоих форматов. Также доступны параметры message и normalizer.

Синтаксис

new Isbn( type: null, message: 'The value is not a valid ISBN.', normalizer: null, )

Пример

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

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

Пример

Давайте проверим значение поля через форму в контроллере:

<?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->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { return new Response('valid isbn'); } return $this->render('article/index.html.twig', [ 'form' => $form->createView(), ]); } } ?>

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

"valid isbn"

Пример

Давайте зададим тип ISBN явно через параметр type:

<?php namespace AppForm; use SymfonyComponentFormAbstractType; use SymfonyComponentFormExtensionCoreTypeTextType; use SymfonyComponentFormFormBuilderInterface; use SymfonyComponentOptionsResolverOptionsResolver; use SymfonyComponentValidatorConstraintsIsbn; class ArticleType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options): void { $builder->add('isbn', TextType::class, [ 'constraints' => [ new Isbn(type: 'isbn13'), ], ]); } public function configureOptions(OptionsResolver $resolver): void { $resolver->setDefaults([ 'data_class' => null, ]); } } ?>

Результат выполнения кода при значении '978-3-16-148410-0':

"valid isbn13"

Пример

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

<?php namespace AppForm; use SymfonyComponentFormAbstractType; use SymfonyComponentFormExtensionCoreTypeTextType; use SymfonyComponentFormFormBuilderInterface; use SymfonyComponentOptionsResolverOptionsResolver; use SymfonyComponentValidatorConstraintsIsbn; class ArticleType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options): void { $builder->add('isbn', TextType::class, [ 'constraints' => [ new Isbn( type: 'isbn10', message: 'Invalid ISBN: {{ value }}.', ), ], ]); } public function configureOptions(OptionsResolver $resolver): void { $resolver->setDefaults([ 'data_class' => null, ]); } } ?>

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

"Invalid ISBN: abcde."

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

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