【问题标题】:Symfony form event POST_SUBMITSymfony 表单事件 POST_SUBMIT
【发布时间】:2020-01-25 17:36:47
【问题描述】:

我试图了解 symfony 表单中的事件侦听器实际上是如何工作的。我尝试了不同的东西,我真的不知道我错在哪里......

这是我的表格:

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
        ->add('user', EntityType::class, [
            'class'        => User::class,
            'label'        => 'User',
            'choice_label' => 'email',
            'attr'         => ['class' => 'form-control']
        ])
        ->add('submit', SubmitType::class, [
            'label' => 'Select',
            'attr'  => ['class' => 'btn-primary btn-block']
        ]);
    $builder->get('user')->addEventListener(
        FormEvents::POST_SUBMIT,
        function (FormEvent $event) {
            dump($event->getData());
            dump($event->getForm());
        });
}

public function configureOptions(OptionsResolver $resolver)
{
    $resolver->setDefaults([]);
}

我的猜测是,每当我提交表单时它会转储我一些数据,但它不会转储任何东西。

我尝试更改事件类型,但只有 PRE_SET_DATA 和 POST_SET_DATA 正在转储信息(尽管 $event->getData() 为空)...

感谢您的帮助!

【问题讨论】:

标签: forms symfony events


【解决方案1】:

您必须为表单生成器添加事件。


$builder->addEventListener(FormEvents::POST_SUBMIT, function(FormEvent $event) {
    dump($event->getData());
    dump($event->getForm());
});

https://symfony.com/doc/current/form/events.html

【讨论】:

  • 感谢您的回答,但不幸的是它没有改变任何东西......
猜你喜欢
  • 1970-01-01
  • 2022-06-13
  • 1970-01-01
  • 1970-01-01
  • 2012-08-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多