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

Метод createFormBuilder

Метод createFormBuilder принадлежит классу AbstractController и возвращает объект FormBuilderInterface. Он позволяет быстро создать форму прямо в контроллере без необходимости создавать отдельный класс формы. Первым параметром передаётся объект сущности, с которой будет связана форма, вторым - массив опций. После настройки формы вызывается метод getForm.

Синтаксис

$form = $this->createFormBuilder($data, $options);

Пример

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

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/article/create', name: 'article_create')] public function create(): Response { $form = $this->createFormBuilder() ->add('title') ->getForm(); return $this->render('article/create.html.twig', [ 'form' => $form ]); } } ?>

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

<form name="form"> <div> <label for="form_title">Title</label> <input type="text" id="form_title" name="form[title]"> </div> </form>

Пример

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

<?php namespace App\Controller; use App\Entity\Article; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/article/new', name: 'article_new')] public function new(Request $request): Response { $article = new Article(); $form = $this->createFormBuilder($article) ->add('title') ->add('text') ->getForm(); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { return new Response('form valid'); } return $this->render('article/new.html.twig', [ 'form' => $form ]); } } ?>

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

"form valid"

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

  • класс AbstractController,
    который является базовым для контроллеров
  • метод createForm,
    который создаёт форму из класса
  • метод render,
    который рендерит Twig-шаблон
  • метод redirectToRoute,
    который выполняет редирект на маршрут
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить