Zend Framework - 整数验证器

时间:2013-04-18 16:51:31

标签: php zend-framework

Zend Framework似乎有一个验证整数的功能(为此目的检查了库中的/Validate/Int.php),它正确地将浮点数验证为整数,而我想在给出浮点数时显示错误。 / p>

以下是我的表单摘录:

  $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))”并确定输入是整数,当你尝试在数据库在整数字段中,您会收到错误。

我应该如何组织表单验证,以便在提供浮点数时,无论如何,向用户显示错误?

1 个答案:

答案 0 :(得分:0)

您应该将Int过滤器添加到该元素。

$element->addFilter(new Zend_Filter_Int());