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

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

Метод create класса FormFactory создаёт форму и возвращает объект FormInterface. Первым параметром передаётся класс типа формы, вторым - исходные данные для полей формы, третьим - массив опций. Метод удобен, когда форму нужно построить программно, не прибегая к методу createForm контроллера.

Синтаксис

<?php public function create( string $type, mixed $data = null, array $options = [] ): FormInterface ?>

Пример

Давайте создадим простую форму через фабрику и выведем её HTML:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\Form\Extension\Core\Type\TextType; use Symfony\Component\Form\Extension\Core\Type\SubmitType; use Symfony\Component\Form\FormFactoryInterface; use Symfony\Component\HttpFoundation\Response; class ArticleController extends AbstractController { public function index(FormFactoryInterface $factory): Response { $form = $factory->create('form', [ 'name' => null, ]); $form->add('name', TextType::class); $form->add('save', SubmitType::class); return $this->render('article/index.html.twig', [ 'form' => $form->createView(), ]); } } ?>

Пример

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

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\Form\Extension\Core\Type\TextType; use Symfony\Component\Form\Extension\Core\Type\SubmitType; use Symfony\Component\Form\FormFactoryInterface; use Symfony\Component\HttpFoundation\Response; class ArticleController extends AbstractController { public function index(FormFactoryInterface $factory): Response { $form = $factory->create('form', [ 'name' => 'abcde', ]); $form->add('name', TextType::class); $form->add('save', SubmitType::class); return $this->render('article/index.html.twig', [ 'form' => $form->createView(), ]); } } ?>

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

<form name="form" method="post"> <div> <label for="form_name">Name</label> <input type="text" id="form_name" name="form[name]" value="abcde"> </div> <button type="submit" id="form_save" name="form[save]">Submit</button> </form>

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

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