Php 设置每个字段的海关Zend表单验证消息

Php 设置每个字段的海关Zend表单验证消息,php,zend-framework,zend-form,zend-validate,Php,Zend Framework,Zend Form,Zend Validate,我想为表单中的字段创建自定义错误消息。 在这些字段中,您需要输入一个数字范围,该范围必须在1到999999999999999999.99之间,如果它小于1或大于99999等。我希望显示某条消息 这是我目前拥有的代码,但当我试图打开表单时,我得到的只是一个空白的白色屏幕 $fee = new Zend_Form_Element_Text('job_salary'); $fee->setLabel("Salary "); $fee->setAttrib('class', 'input-b

我想为表单中的字段创建自定义错误消息。 在这些字段中,您需要输入一个数字范围,该范围必须在1到999999999999999999.99之间,如果它小于1或大于99999等。我希望显示某条消息

这是我目前拥有的代码,但当我试图打开表单时,我得到的只是一个空白的白色屏幕

$fee = new Zend_Form_Element_Text('job_salary');
$fee->setLabel("Salary ");
$fee->setAttrib('class', 'input-block-level');
$fee->addDecorator("ViewHelper");
$fee->addValidator('Float');
//$fee->addFilter("Alnum");
$fee->addValidator(new Zend_Validate_JobValidator(), true);
$fee = $salary->getMessageTemplates();
$fee->setMessage(
        Zend_Validate_JobValidator::NOT_BETWEEN_SALARY
        );
$fee->setRequired(true);
$this->addElement($fee);
这是其中一个字段的函数

然后,我创建了一个单独的验证器类,而不是使用Zend类

const MSG_NUMERIC = 'msgNumeric';
const NOT_BETWEEN = 'notBetween';
const NOT_BETWEEN_SALARY = 'notBetween';
const NOT_BETWEEN_STRICT = 'notBetweenStrict';

public $minimum = 1;
public $maximum = 99999999999999999999999999999.99;
protected $_messageVariables = array(
    'min' => 'minimum',
    'max' => 'maximum'
);
protected $_messageTemplates = array(
    self::MSG_NUMERIC => "'%value%' is not numeric",
    self::NOT_BETWEEN => "'%value%' is not between '%min%' and '%max%' inclusively  - Please fill in the correct amount for fees",
    self::NOT_BETWEEN_SALARY => "'%value'is not between '%min%' and '%max%', inclusively - Please fill in the correct amount for this position ",
    self::NOT_BETWEEN_STRICT => "'%value%' is not strictly between '%min%' and '%max%' inclusively  - Please fill in the fee for this placement"
);

public function isValid($value) {
    $this->_setValue($value);

    if (!is_numeric($value)) {
        $this->_error(self::MSG_NUMERIC);
        return false;
    }

    if ($value < $this->minimum) {
        $this->_error(self::NOT_BETWEEN);
        return false;
    }

    if ($value < $this->minimum) {
        $this->_error(self::NOT_BETWEEN_SALARY);
        return false;
    }

    if ($value > $this->maximum) {
        $this->_error(self::NOT_BETWEEN_STRICT);
        return false;
    }

    return true;
}

}

首先检查错误日志,也许您得到了一个错误,只是为了指出在isValid函数中,$value<$this->minimum的第二个if永远不会出现,因为上面的函数返回false。