我成功使用了ZF2 Callback
validator,但我对它返回的代码有疑问。这里使用的配置:
'validators'=>array(
array(
'name' => 'Callback',
'options' => array(
'messages'=>array(
Callback::INVALID_VALUE => 'Error',
),
'callback' => function ($value,$context=array()) {
if(empty($value) && empty($context['company'])){
$isValid = false;
}else{
$isValid = true;
}
return $isValid;
},
)
)
),
问题在于错误代码中没有返回消息
返回callbackValue
,这是INVALID_VALUE
验证类
Callback
的值
有没有办法通过选项更改此值?
我想避免为每个必须验证的项目编写自定义类。
答案 0 :(得分:0)
我试过但这段代码完全正常:
use Zend\Validator\Callback;
.....
array(
'name' => 'Callback',
'options' => array(
'messages' => array(
Callback::INVALID_VALUE => 'My custom message',
Callback::INVALID_CALLBACK => 'My custom message'
),
'callback' => function(){
return false;
}
)
)
邮件的关键是:callbackValue
,但我收到的邮件是'My custom message'
答案 1 :(得分:0)
在您的表单类中,在回调函数中获取表单字段并为其设置自定义错误:
...
'callback' => function(){
...
// validation logic returns
// one of the possible messages into $message
$this->getInputFilter()
->get('<FieldName>')
->setErrorMessage($message);
return false;
}