Symfony表单事件显示转储和获取数据属性

时间:2016-08-04 10:02:30

标签: php symfony

我在Symfony FormType中使用FormEvents

我在我的某个字段中添加了data-attribute,并尝试在PRE_SUBMIT表单事件中获取此属性。

如果data-attributetrue,我想在此表单事件中创建一个条件以添加另一个字段。

问题是,我不知道如何在此表单事件中获取data-attribute值。 我写的每个dump()都没有显示,或者我找不到Symfony分析器中的位置。

$builder->addEventListener(FormEvents::PRE_SUBMIT, function (FormEvent $event) use ($refreshIpV4s, $refreshIpV6s) {
    $form = $event->getForm();
    $data = $event->getData();

    dump($form->get('server')->has('data-mysql'));
    dump($form->get('server')->getData());
    dump($form['server']['data-mysql']);    

    if ($form['server']['data-mysql']) {
        $form->add('database', CheckboxType::class, [
            'label' => 'domain.form.associated_databases',
            'translation_domain' => 'front',
            'required' => false,
        ]);
    }
});

这个转储是测试,我不知道它们是否好坏,我只是测试我得到的东西。

如何在使用表单事件时看到此dump()? 如何获得data-attribute值?

知道转储的显示位置会非常有用。

由于

1 个答案:

答案 0 :(得分:1)

从Symfony 2.6开始,您会在探查器中看到dump()结果。要在重定向期间接收转储,请使用intercept_redirects并将其设置为true。您可以在app/config/config_dev.yml选项下的web_profiler下找到它。

再次提交表单并等待重定向被截获,您应该看到转储结果。