我正在使用zend表单。我想验证一个字段,并希望在字段中只允许平坦和整数值。这意味着用户可以输入任何浮动值,如2.0 or 3.56, etc
或4 or 7, etc
。但我不想收到alpha numeric or alphabet input
。
我使用了digit
验证程序,但它只允许digits
而不是floating number
。
任何机构都可以告诉我如何将两种验证放在一起吗?
我的代码如下
$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'))
答案 0 :(得分:2)
创建和使用custom validator非常简单。您可以通过使用PHP is_int和is_float函数进行验证,并且仍然以'Zend方式'进行验证。
答案 1 :(得分: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;
}
)
)
)
)));