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

Метод add

Метод add класса Form добавляет новое поле в форму. Первым параметром передаётся имя поля, вторым - тип поля, третьим - массив опций. Метод возвращает сам объект формы, поэтому вызовы можно объединять в цепочку.

Синтаксис

$form->add(string $name, string $type = null, array $options = [])

Пример

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

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentFormExtensionCoreTypeTextType; use SymfonyComponentFormFormBuilderInterface; use SymfonyComponentRoutingAttributeRoute; class ArticleController extends AbstractController { #[Route('/form', name: 'article_form')] public function form(): Response { $form = $this->createFormBuilder() ->add('title', TextType::class) ->getForm(); return $this->render('article/form.html.twig', [ 'form' => $form->createView(), ]); } } ?>

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

{{ form_start(form) }} {{ form_row(form.title) }} {{ form_end(form) }}

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

<input type="text" id="form_title" name="form[title]">

Пример

Давайте добавим поле с опциями - подпись и обязательность:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentFormExtensionCoreTypeTextType; use SymfonyComponentRoutingAttributeRoute; class ArticleController extends AbstractController { #[Route('/form', name: 'article_form')] public function form(): Response { $form = $this->createFormBuilder() ->add('title', TextType::class, [ 'label' => 'Article title', 'required' => false, ]) ->getForm(); return $this->render('article/form.html.twig', [ 'form' => $form->createView(), ]); } } ?>

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

{{ form_start(form) }} {{ form_row(form.title) }} {{ form_end(form) }}

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

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

Пример

Давайте добавим несколько полей цепочкой вызовов:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentFormExtensionCoreTypeTextType; use SymfonyComponentFormExtensionCoreTypeTextareaType; use SymfonyComponentFormExtensionCoreTypeIntegerType; use SymfonyComponentRoutingAttributeRoute; class ArticleController extends AbstractController { #[Route('/form', name: 'article_form')] public function form(): Response { $form = $this->createFormBuilder() ->add('title', TextType::class) ->add('content', TextareaType::class) ->add('views', IntegerType::class) ->getForm(); return $this->render('article/form.html.twig', [ 'form' => $form->createView(), ]); } } ?>

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

{{ form_start(form) }} {{ form_row(form.title) }} {{ form_row(form.content) }} {{ form_row(form.views) }} {{ form_end(form) }}

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

<input type="text" id="form_title" name="form[title]"> <textarea id="form_content" name="form[content]"></textarea> <input type="number" id="form_views" name="form[views]">

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

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