forms - Symfony 表单事件 POST_SUBMIT
问题描述
我试图了解 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() 为空)...
谢谢你的帮助 !
解决方案
您必须为表单生成器添加事件。
$builder->addEventListener(FormEvents::POST_SUBMIT, function(FormEvent $event) {
dump($event->getData());
dump($event->getForm());
});
推荐阅读
- elasticsearch - 自定义 Kafka Connect - ElasticSearch Sink 连接器
- c# - 使用 DataGridView 的 RowPrePaint 事件时,行被渲染两次
- optimization - Scipy的优化可以找到多个局部极值吗?
- powershell - 向一个用户添加多个邮箱时,无法处理参数“身份”错误上的参数转换
- c++ - 为什么 ./configure libbitcoin-system 在 Raspian Butch 上找不到 boost 库?
- java - 将一些复选框从一个 ActionListener 转移到另一个 ActionListener
- html - 如何为网页中的四个DIV定义css
- javascript - 倒计时完成后如何使用codeigniter自动更新数据库值
- r - 仅当在 mlr 中使用 parallelMap 时才会发生静默崩溃
- amazon-s3 - AWS S3 Presign URL 生成抛出 409 Conflicting Conditional Operation Exception