0

一个“简单”的问题: http: //mwop.net/blog/2012-07-02-zf2-beta5-forms.html

是否可以在不使用 zend 表单的情况下使用 zf2 zend 表单注释验证规则,所以我可以在模型验证器(例如,在持久化之前使用检查模型是否正确)和 zend 表单验证之间共享验证规则?

如果我的“名字”不应该是空的并且在 5 到 20 个字符之间,那么表格和模型的规则是一样的。

我希望我明确指出

罗马

4

1 回答 1

1

好吧,由于模型获取的所有数据都来自用户输入或数据库,因此您也不需要测试模型本身。数据库里面的数据应该是正确的!

IE:相信自己的数据而不相信用户?

但是,如果您仍然想这样做,我想您可以使用 AnnotationBuilder 构建表单,然后从表单中获取 InputFilters(我确定有一个方法,可能基于每个元素),然后在您的模型中使用它们 - 但是正如我的第一段所暗示的那样,我认为这是一个非常无用的观点:)

至于多个可用的输入过滤器,最好的办法是在每个模型的基础上编写自己的扩展Zend\InputFilter\InputFilter的类。当您构建表单时,您可以将该类作为过滤器定义附加,$form->setInputFilter($myModelInputFilterClass)您还可以在模型中调用该类以通过这些过滤器运行您的数据。我没有手动完成此操作,但它应该可以工作。

如果您遇到必需的语句,我猜唯一的陷阱可能会发生。在每个元素的基础上检查,我不知道这是否也有效。由于 InputFilter 检查所有给定的过滤器。虽然如果你导入一个完整的 CSV-Sheet 或其他东西,你会有一个populateFromCsv()函数或其他东西,然后我想无论如何都会检查所有数据。

于 2012-10-26T20:24:38.707 回答