如何验证zend表单在两个字段之间所需的一个字段

时间:2010-12-23 09:34:15

标签: zend-framework zend-form

我有两个元素,成人不,孩子不,至少需要一个字段。如何在zend框架中验证它并生成错误消息。

1 个答案:

答案 0 :(得分:2)

您需要创建自己的验证器。在这种情况下,我认为您可以使用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;
}

此代码未经过测试但应该可以使用:)