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

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

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

Синтаксис

public function createNamedBuilder( string $name, string $type = FormType::class, mixed $data = null, array $options = [] ): FormBuilderInterface

Пример

Давайте создадим построитель формы с именем 'article' и типом FormType:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\Form\Extension\Core\Type\FormType; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Form\FormFactoryInterface; class ArticleController extends AbstractController { public function index(FormFactoryInterface $factory): Response { $builder = $factory->createNamedBuilder( 'article', FormType::class ); return new Response($builder->getName()); } } ?>

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

"article"

Пример

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

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\Form\Extension\Core\Type\FormType; use Symfony\Component\Form\Extension\Core\Type\TextType; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Form\FormFactoryInterface; class ArticleController extends AbstractController { public function index(FormFactoryInterface $factory): Response { $builder = $factory->createNamedBuilder( 'article', FormType::class, ['title' => 'abcde'] ); $builder->add('title', TextType::class); $form = $builder->getForm(); $data = $form->getData(); return new Response($data['title']); } } ?>

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

"abcde"

Пример

Давайте передадим опции формы через четвёртый параметр метода:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\Form\Extension\Core\Type\FormType; use Symfony\Component\Form\Extension\Core\Type\TextType; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Form\FormFactoryInterface; class ArticleController extends AbstractController { public function index(FormFactoryInterface $factory): Response { $builder = $factory->createNamedBuilder( 'article', FormType::class, null, [ 'action' => '/article', 'method' => 'POST' ] ); $builder->add('title', TextType::class); $form = $builder->getForm(); return new Response($form->getConfig()->getAction()); } } ?>

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

"/article"

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

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