一个“简单”的问题: http: //mwop.net/blog/2012-07-02-zf2-beta5-forms.html
是否可以在不使用 zend 表单的情况下使用 zf2 zend 表单注释验证规则,所以我可以在模型验证器(例如,在持久化之前使用检查模型是否正确)和 zend 表单验证之间共享验证规则?
如果我的“名字”不应该是空的并且在 5 到 20 个字符之间,那么表格和模型的规则是一样的。
我希望我明确指出
罗马
一个“简单”的问题: http: //mwop.net/blog/2012-07-02-zf2-beta5-forms.html
是否可以在不使用 zend 表单的情况下使用 zf2 zend 表单注释验证规则,所以我可以在模型验证器(例如,在持久化之前使用检查模型是否正确)和 zend 表单验证之间共享验证规则?
如果我的“名字”不应该是空的并且在 5 到 20 个字符之间,那么表格和模型的规则是一样的。
我希望我明确指出
罗马
好吧,由于模型获取的所有数据都来自用户输入或数据库,因此您也不需要测试模型本身。数据库里面的数据应该是正确的!
IE:相信自己的数据而不相信用户?
但是,如果您仍然想这样做,我想您可以使用 AnnotationBuilder 构建表单,然后从表单中获取 InputFilters(我确定有一个方法,可能基于每个元素),然后在您的模型中使用它们 - 但是正如我的第一段所暗示的那样,我认为这是一个非常无用的观点:)
至于多个可用的输入过滤器,最好的办法是在每个模型的基础上编写自己的扩展Zend\InputFilter\InputFilter的类。当您构建表单时,您可以将该类作为过滤器定义附加,$form->setInputFilter($myModelInputFilterClass)
您还可以在模型中调用该类以通过这些过滤器运行您的数据。我没有手动完成此操作,但它应该可以工作。
如果您遇到必需的语句,我猜唯一的陷阱可能会发生。在每个元素的基础上检查,我不知道这是否也有效。由于 InputFilter 检查所有给定的过滤器。虽然如果你导入一个完整的 CSV-Sheet 或其他东西,你会有一个populateFromCsv()
函数或其他东西,然后我想无论如何都会检查所有数据。