Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
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 для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить