2014-02-19 48 views
1

我的Symfony2(2.4.2)应用程序有一个表单和一个实体,我在某些字段上设置了一些验证约束条件。实体变量之一是一个不应该为空的数组。约束验证器验证实体在Symfony 2中准备就绪之前的实体

表单有一个字段,它没有直接映射到实体。输入是逗号分隔的字符串;这个字符串将preg_split放入一个数组并保存到前面提到的实例变量中。该操作由FormEvents::POST_SUBMIT触发。

但是,当我提交表单时,即使输入字符串不是空的,表单显示验证失败。我做了一些调试,发现验证实际发生在FormEvents::POST_SUBMIT之前。我尝试过其他FormEvents,但没有运气。

有没有办法在验证之前触发事件?

注意:上面的场景缩短了,如果上下文是我真正的应用程序,问我一个问题太长了。

+0

你为什么不以'FormEvents为此:: PRE_SUBMIT'? – JamesHalsall

+0

为什么表单字段没有映射到实体?它是验证错误,因为该字段在当时为空或者因为它不像POST_SUBMIT之后的数组?既然它不是空的,也许你应该改变验证的格式,看起来像分裂事件之前。 – SenseException

+2

使用DataTransformers进行这种操作。不是形式事件。 – Cerad

回答