我在Zend2上使用此输入过滤器:
$this->get('foo')->getValidatorChain()->attach(
new GreaterThan(array(
'min' => 1,
'inclusive' => true
))
);
这是有效的,但我知道我还需要允许 foo var为空,所以如果为空,则验证,如果不为空,则应用 GreaterThan 条件价值。
我尝试解决此问题只是在该代码之上添加:$this->get('foo')->setAllowEmpty(true);
,但无效,它会持续验证 GreaterThan 条件。
我该如何解决这个问题?
答案 0 :(得分:0)
我会在帖子之后和控制器内的验证之前附加验证器。您还可以在表单类中添加一个方法,但为了演示目的,我尝试保持简短,但在表单中执行此操作可能更清晰。
...
if($request->isPost()) {
$data = $request->getpost();
if(!empty($data['foo'])) {
$form->get('foo')->getValidatorChain()->attach(
new GreaterThan(array(
'min' => 1,
'inclusive' => true ))
);
}
if($form->isValid()) {
//your code
}
}
...
还可以创建自己的验证器。该文档有一些示例,并且非常清楚如何使用它们。 Documentation