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

Метод createBuilder класса FormFactory

Метод createBuilder класса FormFactory создаёт экземпляр FormBuilderInterface, который используется для программного построения формы. Первым параметром передаётся тип формы (класс типа или его строковое имя), вторым - начальные данные, а третьим - массив опций формы. В отличие от метода create, который сразу возвращает готовую форму, createBuilder возвращает построитель, что даёт возможность до создания формы добавить или изменить поля.

Синтаксис

$res = $factory->createBuilder($type, $data = null, array $options = []);

Пример

Давайте создадим форму с одним полем через построитель:

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

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

"Form created"

Пример

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

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentFormFormFactoryInterface; use SymfonyComponentFormExtensionCoreTypeTextType; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentRoutingAttributeRoute; class ArticleController extends AbstractController { #[Route('/form-data', name: 'article_form_data')] public function formData(FormFactoryInterface $factory): Response { $data = [ 'title' => 'article', ]; $builder = $factory->createBuilder( null, $data, ['method' => 'POST'] ); $builder->add('title', TextType::class); $form = $builder->getForm(); return new Response($form->getData()['title']); } } ?>

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

"article"

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

  • класс FormFactory,
    который создаёт формы и построители форм
  • метод create,
    который сразу возвращает готовую форму
  • метод createNamedBuilder,
    который создаёт построитель с заданным именем
  • метод createNamed,
    который создаёт именованную форму
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить