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

Метод createNamed

Метод createNamed класса FormFactory создаёт форму и позволяет явно задать её имя. Первым параметром передаётся имя формы, вторым - класс типа формы, третьим - начальные данные, четвёртым - массив опций. Имя формы важно для корректной обработки запроса и привязки полей.

Синтаксис

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

Пример

Давайте создадим форму с именем 'article' через метод createNamed:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentFormExtensionCoreTypeTextType; use SymfonyComponentFormFormFactoryInterface; use SymfonyComponentRoutingAttributeRoute; class ArticleController extends AbstractController { #[Route('/article', name: 'article_form')] public function form(FormFactoryInterface $factory): Response { $form = $factory->createNamed('article', TextType::class, null, [ 'label' => 'Article title', ]); return new Response($form->getName()); } } ?>

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

"article"

Пример

Давайте создадим форму с именем 'article' и выведем её в шаблоне:

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

Содержимое Twig-шаблона:

{{ form_start(form) }} {{ form_widget(form) }} <button type="submit">Send</button> {{ form_end(form) }}

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

<form name="article" method="post"> <div> <label for="article">Article title</label> <input type="text" id="article" name="article" /> </div> <button type="submit">Send</button> </form>

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

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