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

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

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

Синтаксис

create(string $type, mixed $data = null, array $options = []): FormInterface

Пример

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

<?php namespace App\Controller; use App\Form\ArticleType; 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->createForm(ArticleType::class); return $this->render('article/create.html.twig', [ 'form' => $form, ]); } } ?>

Пример

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

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

Пример

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

<?php namespace App\Controller; use App\Form\ArticleType; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/article/new', name: 'article_new')] public function new(FormBuilderInterface $builder): Response { $options = [ 'action' => '/article/save', 'method' => 'POST', ]; $form = $builder->create(ArticleType::class, null, $options); return $this->render('article/new.html.twig', [ 'form' => $form->getForm(), ]); } } ?>

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

  • класс FormBuilder,
    который строит объекты форм
  • метод add,
    который добавляет поле в форму
  • метод getForm,
    который возвращает готовый объект формы
  • метод get,
    который возвращает поле формы по имени
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить