zf2 изменить код ошибки, возвращенный валидатором обратного вызова

Я успешно использую ZF2 Callback валидатор но у меня проблема с кодом, который он возвращает. Вот конфиг, который используют:

'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 класс проверки

Есть ли способ изменить это значение через параметры?

Я хотел бы избежать написания собственного класса для каждого элемента, который мне нужно проверить.

2

Решение

Я пытался, но этот код работает совершенно нормально:

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'

0

Другие решения

в вашем классе формы, внутри функции обратного вызова получите поле формы и установите для него пользовательскую ошибку:

...
'callback' => function(){
...
// validation logic returns
// one of the possible messages into $message

$this->getInputFilter()
->get('<FieldName>')
->setErrorMessage($message);

return false;
}
0

По вопросам рекламы [email protected]