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

Метод getForm

Метод getForm класса FormBuilder возвращает объект формы, который был собран на основе добавленных полей. Вызывается после того, как через метод add были добавлены все необходимые поля. Возвращаемый объект реализует интерфейс FormInterface и может быть использован для отображения, обработки и валидации данных.

Синтаксис

public function getForm(): FormInterface

Пример

Давайте создадим форму с помощью FormBuilder и получим её объект:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Form\Extension\Core\Type\FormType; use Symfony\Component\Form\Extension\Core\Type\TextType; use Symfony\Component\Form\Extension\Core\Type\IntegerType; class ArticleController extends AbstractController { public function index(): Response { $builder = $this->createFormBuilder(); $builder->add('title', TextType::class); $builder->add('price', IntegerType::class); $form = $builder->getForm(); return new Response(get_class($form)); } } ?>

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

"Symfony\Component\Form\Form"

Пример

Давайте получим форму и отрендерим её в Twig-шаблоне:

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

Twig-шаблон для вывода формы:

{{ form_start(form) }} {{ form_row(form.name) }} {{ form_row(form.save) }} {{ form_end(form) }}

Пример

Давайте обработаем отправленные данные формы, полученной через getForm:

<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Form\Extension\Core\Type\TextType; use Symfony\Component\Form\Extension\Core\Type\IntegerType; class ArticleController extends AbstractController { public function index(Request $request): Response { $builder = $this->createFormBuilder(); $builder->add('title', TextType::class); $builder->add('price', IntegerType::class); $form = $builder->getForm(); $form->handleRequest($request); if ($form->isSubmitted() && $form->isValid()) { $data = $form->getData(); return new Response($data['title']); } return $this->render('article/index.html.twig', [ 'form' => $form->createView(), ]); } } ?>

Результат выполнения кода для отправленного поля title со значением 'abcde':

abcde

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

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