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