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

Правило NotBlank

Правило NotBlank вешается на поле формы и проверяет, что его значение не является пустым. Пустыми считаются значения null, пустая строка '', а также строка, состоящая только из пробелов. В отличие от правила NotNull, которое проверяет только на null, правило NotBlank отсеивает и пустые строки. Первым параметром можно передать текст сообщения об ошибке, который увидит пользователь, если проверка не пройдена.

Синтаксис

#[NotBlank(message: message)]

Пример

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

<?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\Validator\Constraints\NotBlank; class ArticleType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options): void { $builder->add('title', TextType::class, [ 'constraints' => [ new NotBlank( message: 'The title should not be blank.', ), ], ]); } } ?>

Если отправить форму с пустым полем title, валидация не пройдёт и пользователь увидит сообщение, переданное в параметре message.

Пример

Давайте проверим валидацию формы в контроллере:

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

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

"The title should not be blank."

Пример

Правило NotBlank можно вешать сразу на несколько полей, а также использовать без параметров:

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

Если не передавать параметр message, Symfony подставит сообщение по умолчанию: 'This value should not be blank.'.

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

  • правило NotNull,
    которое проверяет значение на null
  • правило Blank,
    которое проверяет, что значение пустое
  • метод isValid,
    который проверяет, прошла ли форма валидацию
  • метод getErrors,
    который возвращает ошибки валидации формы
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить