1

У меня есть поле вопросов со списком разрешенных символов: A-Z, 0-9, двоеточие (:), вопросительный знак (?), Запятая (,), дефис (-), апостроф ('). У меня есть регулярное выражение, которое работает отлично, в моде:Как написать специальный валидатор для элемента формы zend с настраиваемыми сообщениями об ошибках?

$question->addValidator('regex', true, array(<regular expresstion>)) 

сообщение об ошибке по умолчанию является чем-то вроде «»»не совпадает с рисунком„“

Я хочу, чтобы написать сообщение об ошибке, говорит 'не разрешено в этом поле'

Есть ли простой способ сделать это, используя существующие компоненты zend, которые мне не хватает?

Является ли обычным валидатором единственный способ достичь того, чего я пытаюсь достичь? Если да, то как я могу написать собственный валидатор (я посмотрел документацию и не совсем понял, как я могу настроить сообщения об ошибках) Если есть какой-либо другой способ, я бы тоже оценил этот ввод.

Спасибо, что нашли время, чтобы ответить на это!

ответ

2

Да, пользовательский валидатор подходит для ваших нужд. О том, как его записать, см. Здесь: manual.

Что касается фрагмента кода, вот простой валидатор (частично) для проверки работодателя ID

protected $_messageTemplates = array(
    self::UNIQUE => 'The id provided is already in use', 
    ); 

public function isValid($value, $context = null) 
{ 
    $this->_setValue($value); 

    $personnel = new Personnel(); 
    $isValid = true; 

    if($personnel->isExistingIdEmployee($value) && ($value != $this->_id)) { 
     $this->_error(self::UNIQUE); 
     $isValid = false; 
    } 

    return $isValid; 
} 
Смежные вопросы