2012-10-20 6 views
1

젠드 양식을 사용하고 있습니다. 필드의 유효성을 검사하고 필드의 평면 및 정수 값만 허용하려고합니다. 즉, 사용자는 2.0 or 3.56, etc 또는 4 or 7, etc과 같이 부동 값을 입력 할 수 있습니다. 하지만 alpha numeric or alphabet input을 받고 싶지 않습니다.젠드 폼 플로트 및 정수 유효성 검사

나는 digit 검사기를 사용했지만 digitsfloating number이 아닙니다.

두 신체 검사를 함께 사용하는 방법을 알려줄 수 있습니까? 생성 정말 쉽게하고 custom validator을 사용

$parent_affiliate_commission = new Zend_Form_Element_Text('parent_affiliate_commission'); 
$parent_affiliate_commission->setRequired(true) 
      ->addFilter('StringTrim') 
      ->addFilter('StripTags') 
      ->addValidator('Digits') 
      ->setAttrib('class', 'small') 
      ->addValidator('StringLength', false, array(2, 100)) 
      ->setDecorators(array('ViewHelper', 'errors')) 

답변

2

을 다음과 같이

내 코드입니다. PHP is_int 및 is_float 함수를 사용하여 간단하게 유효성을 검증 할 수 있으며 여전히 'Zend 방식'으로 수행합니다.

0

콜백 메소드를 사용하여 숫자로 값의 유효성을 검사했습니다. 문자를 허용하지 않기 때문에.

$inputFilter->add(
       $factory->createInput(
         array(
           'name' => 'proximity', 
           'required' => true, 
           'validators' => array(
             array(
               'name' => 'Callback', 
               'options' => array(
                 'messages' => array(
                   \Zend\Validator\Callback::INVALID_VALUE => 'The proximity value should be numbers' 
                 ), 
                 'callback' => function (
                   $value, 
                   $context = array()) 
                 { 
                  $isValid = is_numeric(
                    $value); 
                  return $isValid; 
                 } 
               ) 
             ) 
           ) 
         )));