有人熟悉在工厂模式中使用 ZF2 正则表达式验证器吗?
我从各种博客和其他堆栈溢出问题中获取了这段代码,但它似乎不起作用。
添加正则表达式验证器会阻止对我的表单的所有更改更新数据库 - 因此即使我插入一个数字,验证器也必须失败。
但是,当我检查时
$form -> getMessages();
我得到一个空数组。任何见解将不胜感激。
为了说明,我使用了一个非常简单的正则表达式,据我了解,它会阻止任何不是数字的条目字符。
$inputFilter->add($factory->createInput(array(
'name' => 'Number',
'required' => true,
'filters' => array(
array('name' => 'StripTags'),
array('name' => 'StringTrim'),
),
'validators' => array(
array(
'name' => 'StringLength',
'options' => array(
'encoding' => 'UTF-8',
'max' => 20,
),
),
),
array(
'name' => 'Regex',
'options' => array(
'pattern' => '/^[0-9]+$',
'messages' => array(
'Invalid input, only 0-9 characters allowed'
),
),
),
)));
一目了然,正则表达式验证器应该位于"验证器"数组中......