Zend Framework 2 inputfilter过滤元素

时间:2013-03-06 09:35:18

标签: zend-framework2 block zend-inputfilter

我正在使用Zend Framework 2.1

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

1 个答案:

答案 0 :(得分:0)

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

阻止某些域名需要的是自定义验证程序。

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

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

以下是我的建议:

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

希望这有帮助。