[英]Zend Framework - integer validator
Zend Framework似乎具有一种验证整数的功能(为此检查了库中的/Validate/Int.php),它可以正确地将浮点数验证为整数,而我想在给出浮点数时显示错误。
这是我表格中的摘录:
$form['my_int'] = new Zend_Form_Element_Text('my_int');
$form['my_int']->setLabel('My Int')
->setRequired(true)
->addFilter('StringTrim')
->addDecorator('Errors', array('placement'=>'prepend',
'class'=>'my-err'))
->addValidator('NotEmpty', true, array('messages' =>
array('isEmpty' => 'Please provide data')))
->addValidator('int', true, array(
'locale' => 'en_US',
'messages' => array(
'intInvalid' => 'Please provide valid data',
'notInt' => 'Please provide valid data'
)
));
因此,当我提供不同于字符串,整数或浮点数的内容时,会触发“ intInvalid”错误并显示我的自定义消息。 如果提供的浮点数为1.23,则显示'notInt'错误。 问题是当您提供例如1.00时,验证器将检查“!Zend_Locale_Format :: isInteger($ value,array('locale'=> $ this-> _ locale))”,并确定输入为整数,并且在尝试输入时在数据库的整数字段中添加浮点数,会出现错误。
我应该如何组织表单验证,以便在提供浮点数时(无论如何)向用户显示错误?
您应该将Int过滤器添加到该元素。
$element->addFilter(new Zend_Filter_Int());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.