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

Событие POST_SET_DATA

Событие POST_SET_DATA относится к событиям формы. Оно возникает после того, как в форму были установлены данные через метод setData. Это событие позволяет получить доступ к данным формы сразу после их установки и, при необходимости, изменить их или выполнить дополнительную логику. Первым параметром в обработчик передаётся объект события FormEvent, из которого можно получить саму форму и её данные.

Синтаксис

use Symfony\Component\Form\FormEvent; use Symfony\Component\Form\FormEvents; $builder->addEventListener(FormEvents::POST_SET_DATA, function (FormEvent $event) { // logic });

Пример

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

<?php namespace App\Form; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Form\FormEvent; use Symfony\Component\Form\FormEvents; use Symfony\Component\Form\Extension\Core\Type\TextType; class ArticleType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options): void { $builder->add('title', TextType::class); $builder->addEventListener(FormEvents::POST_SET_DATA, function (FormEvent $event) { $form = $event->getForm(); $data = $event->getData(); echo 'post set data: ' . $data; }); } } ?>

Пример

Давайте установим данные в форму и посмотрим, что вернёт обработчик события POST_SET_DATA:

<?php namespace App\Controller; use App\Form\ArticleType; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\Routing\Attribute\Route; class ArticleController extends AbstractController { #[Route('/article', name: 'article_form')] public function form(): Response { $form = $this->createForm(ArticleType::class); $form->setData('article'); return new Response('done'); } } ?>

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

post set data: article

Пример

Давайте в обработчике события POST_SET_DATA изменим данные формы через метод setData:

<?php namespace App\Form; use Symfony\Component\Form\AbstractType; use Symfony\Component\Form\FormBuilderInterface; use Symfony\Component\Form\FormEvent; use Symfony\Component\Form\FormEvents; use Symfony\Component\Form\Extension\Core\Type\TextType; class ArticleType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options): void { $builder->add('title', TextType::class); $builder->addEventListener(FormEvents::POST_SET_DATA, function (FormEvent $event) { $event->setData('abcde'); }); } } ?>

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

  • событие PRE_SET_DATA,
    которое возникает перед установкой данных в форму
  • событие PRE_SUBMIT,
    которое возникает перед отправкой формы
  • событие SUBMIT,
    которое возникает при отправке формы
  • событие POST_SUBMIT,
    которое возникает после отправки формы
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить