每个字段为空时,Symfony2强制执行子表单验证

时间:2013-03-21 09:00:01

标签: forms validation symfony callback

我有两个实体(让我们称之为A和B)绑定在一对一的关系和一个表格来填充它们。 根据实体A中的状态填充B实体字段,如下所示:

实体A:状态0 实体B:两个字段都是空的

实体A:州1 实体B:字段1填充字段2空

实体A:状态2 实体B:字段1空字段2填充

不允许两个字段填充状态。

所以我制作了3个自定义回调验证器来检查状态1,2并且不允许。 不幸的是,当两个字段都为空时,不会触发检查状态1和2,显然是因为字段为空;在表单中添加假隐藏字段会触发验证过程,因为表单已填充!

显然这是一个hackish解决方案,所以我想知道是否有办法强制进行子表单验证,即使每个表单字段都是空的。

1 个答案:

答案 0 :(得分:0)

Symfony不验证表单,它验证实体。您最好的方法是在您的实体中创建验证功能,并使用symfony的“Getters”验证进行验证:

http://symfony.com/doc/2.1/book/validation.html#getters

我相信您的情况,具有验证的实体是与表单类型相关联的实体。