【问题标题】:Validate Zip Code Zend Framework 2验证邮政编码 Zend Framework 2
【发布时间】:2015-02-12 19:30:02
【问题描述】:

我想验证邮政编码是否对用户有效。我正在使用 Zend Framework 2。表单字段类型是“文本”(我尝试了值选项,但它似乎不适用于文本元素)。有没有办法可以在表单或模型(输入过滤器)上验证这一点?我在数据库中有一个邮政编码列表,因此我可以在控制器中使用 inArray 检查,但如果可能的话,我希望将其包含在模型或表单中。谢谢

【问题讨论】:

  • The documentation 应该是您首先看到的地方。
  • 但这能验证邮政编码是否真实吗?好像11111会过去。我想确保它是一个真实的邮政编码(存在于我的数据库中)

标签: php zend-framework zend-framework2


【解决方案1】:
may be you can write a class in Form folder extend Zend\Validator\AbstractValidator (exmple: zipcodeCheck) and you must implements the function isValid(), you can create some REGEX statement such like :
public function isValid($value){
if(!preg_match('\d{5}([ -]\d{4})?', $value)){// $value is the data you want to validate
    return false;
}
return true;

}

并且您的过滤器必须添加:

$this->add(array(
           'name'        => 'zipcode',
           'validators'  => array(
               array(
                     'name'       => '\Mmc\Form\yourClassName',//zipcodeCheck may be
                     'options'    => array(
                             'error_title'  => 'Zipcode From',
                    )
               )
           ),
    ));

【讨论】:

    【解决方案2】:

    ZF2 根据预定义的 REGEX 模式验证给定的邮政编码(对于美国地区,他们使用以下 REGEX 模式 '\d{5}([ -]\d{4})?')。

    因此,如果您通过 11111,ZF2 始终返回 TRUE。

    谢谢

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-10-09
      • 2018-07-21
      • 2014-09-08
      • 1970-01-01
      • 2022-12-11
      • 2017-07-09
      • 1970-01-01
      相关资源
      最近更新 更多