【问题标题】:Zend Validation - Specify multiple ways to validate a request - depending on whats in the requestZend 验证 - 指定验证请求的多种方法 - 取决于请求中的内容
【发布时间】:2013-07-08 12:35:36
【问题描述】:

我正在使用 Zend 标准验证类 (http://framework.zend.com/manual/1.12/en/zend.validate.set.html) 来验证对 api 的请求。

您基本上指定了每个请求参数和一组验证每个参数的规则。

是否可以在验证给定请求时指定可以有 2 个(或更多)选项,具体取决于请求中的参数?

例如,如果您发帖:

{
    "a": "someVal", 
    "b": "someVal",
    "c": "someVal",
    "d": "someVal"
}

那么 a、b、c 和 d 是必填字段,但如果您这样发帖:

{
    "a": "someVal", 
    "e": "someVal",
    "f": "someVal",
    "g": "someVal"
}

那么 a、e、f 和 g 是必填字段吗?

如果您检查上面的数据,您会注意到字段“b”是一个 POST 中的必填字段,但它是另一个 POST 中的可选字段。

问题:

您如何指定可以通过 2 种(或更多)方式中的一种来验证请求? 您如何指定应根据请求中的参数验证请求? 这可能吗?如何实现?

已经在这个问题上停留了一段时间,所以任何帮助都会很棒..

Zend 框架 2.2

【问题讨论】:

    标签: validation zend-framework2


    【解决方案1】:

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

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

    Request -> Route -> Controller -> Input Filter Strategy -> InputFilter -> Other Stuff
    

    【讨论】:

    • 感谢您的回答!你有任何示例代码或我可以查看的教程吗?
    猜你喜欢
    • 1970-01-01
    • 2018-10-18
    • 2023-03-22
    • 2019-08-06
    • 1970-01-01
    • 2018-05-31
    • 1970-01-01
    • 2018-08-25
    • 2017-08-15
    相关资源
    最近更新 更多