symfony FormType:EventListener中的setData

时间:2016-05-03 15:00:49

标签: php forms symfony

我写了一个symfony FormType - 一个有POST_SUBMIT EventListener的类,我想在其中设置一个默认值 现有字段依赖于另一个填充的表单元素。

换句话说:依赖于选定的现有用户(实体选择)我想将另一个实体选择字段(国家和州)的默认数据设置为对应值。

代码如下所示:

$formModifier = function (FormInterface $form, Person $person = null) 
{
    if ($person) {
        $form->get('country')->setData(
            $person->getCountry()
        );
    } 
};

通过选择用户提交表单但未成功验证,因此应选择国家/地区。 Person-Object存在,值正确且已到达语句。

但未选择该值。使用POST_SUBMIT - FormEvent?

是否可以实现这一点

附加信息:symfony 2.7,PHP 5.6,实现类似于http://symfony.com/doc/2.7/cookbook/form/dynamic_form_modification.html#dynamic-generation-for-submitted-forms下的第二个示例

提前致谢!

马丁

编辑: formModifier的调用方式如下:

$builder->get('field')->addEventListener(
    FormEvents::POST_SUBMIT,
    function (FormEvent $event) use ($formModifier) {
        $person = $event->getForm()->getData();
        $formModifier($event->getForm()->getParent(), $person)
    }
};

0 个答案:

没有答案