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

Правило NotNull

Правило NotNull относится к валидации и гарантирует, что значение поля не равно null. Оно вешается на свойство сущности или на поле формы. Если значение равно null, валидация завершится ошибкой. Правило можно использовать как в виде атрибута PHP, так и в виде ограничения в YAML или XML.

Синтаксис

#[NotNull(message: 'text')]

Пример

Давайте создадим сущность с полем title, на которое повесим правило NotNull:

<?php namespace AppEntity; use SymfonyComponentValidatorConstraints as Assert; class Article { #[AssertNotNull(message: 'The title should not be null')] private string $title; public function getTitle(): string { return $this->title; } public function setTitle(string $title): void { $this->title = $title; } } ?>

Если передать в поле title значение null, валидатор вернёт ошибку.

Пример

Давайте проверим работу правила через ValidatorInterface:

<?php namespace AppController; use AppEntityArticle; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentRoutingAttributeRoute; use SymfonyComponentValidatorValidatorValidatorInterface; class ArticleController extends AbstractController { #[Route('/article', name: 'article_index')] public function index(ValidatorInterface $validator): Response { $article = new Article(); $article->setTitle(null); $errors = $validator->validate($article); return new Response((string) $errors); } } ?>

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

"Object(AppEntityArticle).title: The title should not be null"

Пример

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

<?php namespace AppForm; use SymfonyComponentFormAbstractType; use SymfonyComponentFormExtensionCoreTypeTextType; use SymfonyComponentFormFormBuilderInterface; use SymfonyComponentOptionsResolverOptionsResolver; use SymfonyComponentValidatorConstraintsNotNull; class ArticleType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options): void { $builder->add('title', TextType::class, [ 'constraints' => [ new NotNull([ 'message' => 'The title should not be null', ]), ], ]); } public function configureOptions(OptionsResolver $resolver): void { $resolver->setDefaults([ 'data_class' => Article::class, ]); } } ?>

Если поле title не будет заполнено, форма вернёт ошибку валидации.

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

  • правило NotBlank,
    которое проверяет, что значение не пустое
  • правило IsNull,
    которое проверяет, что значение равно null
  • класс Form,
    который представляет форму в Symfony
  • метод isValid,
    который проверяет валидность формы
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить