2

我有两个实体(我们称它们为 A 和 B)绑定在一对一的关系中,并有一个填充它们的表单。B 实体字段的填充取决于实体 A 中的状态,如下所示:

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

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

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

两个字段都填写状态是不允许的。

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

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

4

1 回答 1

0

Symfony 不验证表单,它验证实体。你最好的办法是在你的实体中创建一个验证函数,并使用这里描述的 symfony 的“Getters”验证进行验证:

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

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

于 2013-03-21T20:20:04.047 回答