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

Команда make:form

Команда make:form создаёт класс формы в директории src/Form. Первым параметром передаётся имя класса формы. Вторым необязательным параметром указывается сущность, с которой форма будет связана. После генерации класс содержит метод buildForm для добавления полей и метод configureOptions для настройки параметров.

Синтаксис

php bin/console make:form <name> [<entity>]

Пример

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

php bin/console make:form ArticleForm

В результате будет создан файл src/Form/ArticleFormType.php:

<?php namespace AppForm; use SymfonyComponentFormAbstractType; use SymfonyComponentFormFormBuilderInterface; use SymfonyComponentOptionsResolverOptionsResolver; class ArticleFormType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options): void { $builder ->add('title') ->add('content') ; } public function configureOptions(OptionsResolver $resolver): void { $resolver->setDefaults([ // 'data_class' => Article::class, ]); } } ?>

Пример

Давайте создадим форму, связанную с сущностью Article. Для этого вторым параметром укажем класс сущности:

php bin/console make:form ArticleType Article

В результате будет создан файл src/Form/ArticleType.php с автоматически подставленными полями сущности:

<?php namespace AppForm; use AppEntityArticle; use SymfonyComponentFormAbstractType; use SymfonyComponentFormFormBuilderInterface; use SymfonyComponentOptionsResolverOptionsResolver; class ArticleType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options): void { $builder ->add('title') ->add('content') ->add('createdAt') ; } public function configureOptions(OptionsResolver $resolver): void { $resolver->setDefaults([ 'data_class' => Article::class, ]); } } ?>

Пример

Давайте используем сгенерированную форму в контроллере и отрендерим её в шаблоне:

<?php namespace AppController; use AppFormArticleType; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentHttpFoundationRequest; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentRoutingAttributeRoute; class ArticleController extends AbstractController { #[Route('/article/new', name: 'article_new')] public function new(Request $request): Response { $form = $this->createForm(ArticleType::class); return $this->render('article/new.html.twig', [ 'form' => $form, ]); } } ?>

Шаблон для отображения формы:

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

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

  • команда make:entity,
    которая создаёт класс сущности Doctrine
  • команда make:crud,
    которая генерирует контроллер и шаблоны CRUD
  • команда make:controller,
    которая создаёт класс контроллера
  • команда debug:form,
    которая выводит отладочную информацию о форме
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить