Zend 框架 2:相同的验证器 [英] Zend Framework 2: Identical validator
本文介绍了Zend 框架 2:相同的验证器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在 ZF2 中使用相同的验证器时遇到问题.我创建了以下方法:
I have problem with Identical validator in ZF2. I have created following method:
public function getInputFilter()
{
if(!$this->inputFilter){
$inputFilter = new InputFilter();
$factory = new InputFactory();
$inputFilter->add($factory->createInput(array(
'name' => 'id',
'required' => true,
'filters' => array(
array('name' => 'Int'),
),
)));
$inputFilter->add($factory->createInput(array(
'name' => 'username',
'required' => true,
'filters' => array(
array('name' => 'StripTags'),
array('name' => 'StringTrim')
),
'validators' => array(
array(
'name' => 'StringLength',
'options' => array(
'encoding' => 'UTF-8',
'min' => 3,
'max' => 32
)
)
)
)));
$inputFilter->add($factory->createInput(array(
'name' => 'password',
'required' => true,
'filters' => array(
array('name' => 'StripTags'),
array('name' => 'StringTrim')
),
'validators' => array(
array(
'name' => 'StringLength',
'options' => array(
'encoding' => 'UTF-8',
'min' => 3,
'max' => 32
)
)
)
)));
$inputFilter->add($factory->createInput(array(
'name' => 'retype-password',
'required' => true,
'filters' => array(
array('name' => 'StripTags'),
array('name' => 'StringTrim')
),
'validators' => array(
array(
'name' => 'StringLength',
'options' => array(
'encoding' => 'UTF-8',
'min' => 3,
'max' => 32
),
array(
'name' => 'Identical',
'options' => array(
'token' => 'password' //I have tried $_POST['password'], but it doesnt work either
)
)
)
)
)));
$this->inputFilter = $inputFilter;
}
return $this->inputFilter;
}
除了不显示任何内容的相同验证器外,一切正常(无味精,无错误).欢迎提供提示,提前致谢.
Everything works fine except Identical validator which doesn't show anything(no msg, no error). Tips are welcome, thanks in advance.
推荐答案
实际上,您的数组语法似乎放错了位置.这应该会为您解决:
Actually it appears your array syntax is mis-placed is all. This should fix it for you:
public function getInputFilter()
{
if(!$this->inputFilter){
$inputFilter = new InputFilter();
$factory = new InputFactory();
$inputFilter->add($factory->createInput(array(
'name' => 'id',
'required' => true,
'filters' => array(
array('name' => 'Int'),
),
)));
$inputFilter->add($factory->createInput(array(
'name' => 'username',
'required' => true,
'filters' => array(
array('name' => 'StripTags'),
array('name' => 'StringTrim')
),
'validators' => array(
array(
'name' => 'StringLength',
'options' => array(
'encoding' => 'UTF-8',
'min' => 3,
'max' => 32
)
)
)
)));
$inputFilter->add($factory->createInput(array(
'name' => 'password',
'required' => true,
'filters' => array(
array('name' => 'StripTags'),
array('name' => 'StringTrim')
),
'validators' => array(
array(
'name' => 'StringLength',
'options' => array(
'encoding' => 'UTF-8',
'min' => 3,
'max' => 32
)
)
)
)));
$inputFilter->add($factory->createInput(array(
'name' => 'retype-password',
'required' => true,
'filters' => array(
array('name' => 'StripTags'),
array('name' => 'StringTrim')
),
'validators' => array(
array(
'name' => 'StringLength',
'options' => array(
'encoding' => 'UTF-8',
'min' => 3,
'max' => 32
),
),
array(
'name' => 'Identical',
'options' => array(
'token' => 'password' //I have tried $_POST['password'], but it doesnt work either
)
)
)
)));
$this->inputFilter = $inputFilter;
}
return $this->inputFilter;
}
这篇关于Zend 框架 2:相同的验证器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文