验证邮政编码Zend框架2

时间:2015-02-12 19:30:03

标签: php zend-framework zend-framework2

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

2 个答案:

答案 0 :(得分: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',
                    )
               )
           ),
    ));

答案 1 :(得分:0)

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

因此,如果您传递 11111 ,ZF2始终返回TRUE。

由于