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

Метод setAttribute

Метод setAttribute класса FormBuilder позволяет добавить произвольный HTML-атрибут к тегу формы или к конкретному полю. Первым параметром передаётся имя атрибута (например, class, id, placeholder или data-*), а вторым - его значение. Этот метод часто используется для стилизации, добавления JavaScript-хуков или передачи дополнительных данных на клиентскую сторону.

Синтаксис

$builder->setAttribute(string $name, mixed $value)

Пример

Давайте создадим форму и добавим ей атрибут class:

<?php namespace AppController; use SymfonyBundleFrameworkBundleControllerAbstractController; use SymfonyComponentFormExtensionCoreTypeFormType; use SymfonyComponentFormFormBuilderInterface; use SymfonyComponentHttpFoundationResponse; use SymfonyComponentRoutingAttributeRoute; class FormController extends AbstractController { #[Route('/form', name: 'form_index')] public function index(): Response { $builder = $this->createFormBuilder(); $builder->setAttribute('class', 'my-form'); $form = $builder->getForm(); return $this->render('form/index.html.twig', [ 'form' => $form->createView(), ]); } } ?>

В шаблоне Twig форма отобразится с указанным классом:

{{ form_start(form) }} {{ form_widget(form) }} {{ form_end(form) }}

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

<form name="form" method="post" class="my-form"> ... </form>

Пример

Давайте добавим атрибут placeholder к конкретному полю формы:

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

В шаблоне Twig поле отобразится с подсказкой:

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

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

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

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

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