我正在开发一个 ZF2 应用程序,它使用 ZF2 表单和 DoctrineModule 水合器在简单的 CRUD 系统中创建/更新实体。实体 (Union) 与另一个实体 (Team) 具有 Doctrine OneToMany 关联,并且该关联由Zend\Form\Element\Collection
表单站点上的 a 表示。使用表单创建新实体或更新现有实体时,一切正常,除了一种情况:清空预先存在的实体的关联集合。当我删除集合的所有元素并单击保存时,表单被弹回并且集合的每个现有元素都显示错误Value is required and can't be empty
。
显示问题的视频:http: //youtu.be/3ucRb6X61c8
代码:
似乎问题归结为 InputFilter,但我似乎无法确定到底出了什么问题。删除集合的 N 个条目中的 (N-1) 个可以正常工作,因此 InputFilter 结构本身没有问题。也许当 POSTed 集合为空时,Zend\Form
不会删除分配给teams
集合每个元素的现有 NotEmpty 验证器?
为 Union 字段集提供了自定义输入过滤器(参见此处teams
),但集合元素没有列出输入。我也尝试过完全删除自定义 InputFilter 并为teams
集合添加合适的 InputFilter 定义,但最终结果是相同的。
那里的任何人都对我在这里做错了什么有任何见解?