Zend Validation—指定验证请求的多种方法—具体取决于请求中的内容

Zend Validation—指定验证请求的多种方法—具体取决于请求中的内容,validation,zend-framework2,Validation,Zend Framework2,我使用Zend标准验证类()来验证对api的请求 基本上,您可以指定每个请求参数和一组用于验证每个参数的规则 根据请求中的参数,是否可以指定在验证给定请求时可以有2个(或更多)选项 例如,如果您发布: { "a": "someVal", "b": "someVal", "c": "someVal", "d": "someVal" } 然后a、b、c和d是必填字段,但如果您这样发布: { "a": "someVal", "e": "someVa

我使用Zend标准验证类()来验证对api的请求

基本上,您可以指定每个请求参数和一组用于验证每个参数的规则

根据请求中的参数,是否可以指定在验证给定请求时可以有2个(或更多)选项

例如,如果您发布:

{
    "a": "someVal", 
    "b": "someVal",
    "c": "someVal",
    "d": "someVal"
}
然后a、b、c和d是必填字段,但如果您这样发布:

{
    "a": "someVal", 
    "e": "someVal",
    "f": "someVal",
    "g": "someVal"
}
Request -> Route -> Controller -> Input Filter Strategy -> InputFilter -> Other Stuff
那么a、e、f和g是必填字段

如果您检查上述数据,您会注意到字段“b”在一篇文章中是必填字段,但在另一篇文章中是可选字段

问题:

如何指定一个请求可以通过2种(或更多)方式中的1种进行验证? 您如何根据请求中的参数指定应验证请求? 这有可能吗?怎么可能

我已经在这件事上耽搁了一段时间,所以任何帮助都是非常好的


Zend Framework 2.2

您可以创建一个策略类,该类可以根据发布的参数选择适合当前请求的输入过滤器

换句话说,您的请求流应该是这样的:

{
    "a": "someVal", 
    "e": "someVal",
    "f": "someVal",
    "g": "someVal"
}
Request -> Route -> Controller -> Input Filter Strategy -> InputFilter -> Other Stuff

您可以创建一个策略类,该类可以根据发布的参数选择适合当前请求的输入筛选器

换句话说,您的请求流应该是这样的:

{
    "a": "someVal", 
    "e": "someVal",
    "f": "someVal",
    "g": "someVal"
}
Request -> Route -> Controller -> Input Filter Strategy -> InputFilter -> Other Stuff

谢谢你的回答!你有没有这方面的示例代码或教程,我可以看看??谢谢你的回答!您是否有任何示例代码或教程供我参考??