как проверить Zend-форму, где в одном поле требуется между двумя полями - PullRequest
0 голосов
/ 23 декабря 2010

У меня есть два элемента: для взрослых нет и для детей нет, по крайней мере, одно поле обязательно для заполнения. Как проверить это в Zend Framework и сгенерировать сообщение об ошибке.

1 Ответ

2 голосов
/ 23 декабря 2010

Вам необходимо создать свой собственный валидатор.В этом случае я думаю, что вы можете использовать Zend_Validate_Identical, скопировать его код и изменить метод isValid следующим образом:

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

    if (($context !== null) && isset($context) && array_key_exists($this->getToken(), $context)) {
        $token = $context[$this->getToken()];
    } else {
        $token = $this->getToken();
    }

    if ($token === null) {
        $this->_error(self::MISSING_TOKEN);
        return false;
    }

    $strict = $this->getStrict();
    // change != to ==
    if (($strict && ($value === $token)) || (!$strict && ($value == $token)) && (&token =='' || $value == '') {
        $this->_error(self::**YOUR_ERROR _CODE**);
        return false;
    }

    return true;
}

Этот код не тестируется, но он должен работать

...