【问题标题】:Zend Framework 2 inputfilter Filter ElementsZend Framework 2 inputfilter 过滤器元素
【发布时间】:2013-03-06 09:35:17
【问题描述】:

我正在使用 Zend Framework 2.1

我想为 Zend 表单的电子邮件字段创建域或电子邮件地址的阻止列表。我认为可以使用 Zend InputFilter。但我不知道该怎么做

【问题讨论】:

    标签: zend-framework2 block zend-inputfilter


    【解决方案1】:

    InputFilter 旨在验证和清理一组输入数据,它们使用验证器和过滤器来实现这一目标。

    您需要阻止某些域的是自定义验证器。

    这里的棘手部分是您需要从电子邮件地址中提取域,这是 EmailAddress 验证器已经在做的事情(而且做得很好)。

    幸运的是,EmailAddress 验证器使用内部主机名验证器来检查域是否有效。

    这是我的建议:

    • 编写您自己的验证器,扩展 Zend\Validator\Hostname。如果您重载 isValid() 方法,您将能够将您的自定义阻塞逻辑添加到验证器...不要忘记检查自己的逻辑后返回父方法值。
    • 配置 EmailAddress 验证器以使用您的自定义主机名验证器(使用 setHostnameValidator() 方法,或通过在构造函数中传递配置)。
    • 在 InputFilter 中使用您的 EmailAddress 验证器,有关如何执行此操作的更多详细信息,请参阅文档:http://framework.zend.com/manual/2.2/en/modules/zend.input-filter.intro.html

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-15
      相关资源
      最近更新 更多