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

Метод has класса Form

Метод has класса Form проверяет, существует ли в форме дочерний элемент с указанным именем. Первым параметром передаётся имя элемента формы в виде строки. Метод возвращает true, если элемент найден, и false в противном случае. Это удобно для проверки наличия поля перед его извлечением через get.

Синтаксис

public function has(string $name): bool

Пример

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

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentFormExtensionCoreTypeTextType; use SymfonyComponentFormExtensionCoreTypeSubmitType; use SymfonyComponentFormFormBuilderInterface; use SymfonyComponentFormFormFactoryInterface; use SymfonyComponentRoutingAttributeRoute; class ArticleController extends AbstractController { #[Route('/article', name: 'article_form')] public function form(FormFactoryInterface $factory): Response { $builder = $factory->createBuilder(); $builder->add('title', TextType::class); $builder->add('save', SubmitType::class); $form = $builder->getForm(); $res = $form->has('title'); return new Response(var_export($res, true)); } } ?>

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

true

Пример

Давайте проверим наличие несуществующего поля content в форме:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentFormExtensionCoreTypeTextType; use SymfonyComponentFormExtensionCoreTypeSubmitType; use SymfonyComponentFormFormFactoryInterface; use SymfonyComponentRoutingAttributeRoute; class ArticleController extends AbstractController { #[Route('/article', name: 'article_form')] public function form(FormFactoryInterface $factory): Response { $builder = $factory->createBuilder(); $builder->add('title', TextType::class); $builder->add('save', SubmitType::class); $form = $builder->getForm(); $res = $form->has('content'); return new Response(var_export($res, true)); } } ?>

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

false

Пример

Давайте используем метод has для безопасного извлечения поля title через метод get:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentFormExtensionCoreTypeTextType; use SymfonyComponentFormExtensionCoreTypeSubmitType; use SymfonyComponentFormFormFactoryInterface; use SymfonyComponentRoutingAttributeRoute; class ArticleController extends AbstractController { #[Route('/article', name: 'article_form')] public function form(FormFactoryInterface $factory): Response { $builder = $factory->createBuilder(); $builder->add('title', TextType::class); $builder->add('save', SubmitType::class); $form = $builder->getForm(); $res = 'not found'; if ($form->has('title')) { $res = $form->get('title')->getName(); } return new Response($res); } } ?>

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

"title"

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

  • класс Form,
    который представляет форму в Symfony
  • метод get,
    который возвращает дочерний элемент формы по имени
  • метод all,
    который возвращает все дочерние элементы формы
  • метод add,
    который добавляет новый элемент в форму
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить