Php Zend表单:向元素添加消息

Php Zend表单:向元素添加消息,php,zend-framework,zend-form,zend-form-element,Php,Zend Framework,Zend Form,Zend Form Element,我通常以以下方式使用Zend Form的消息: 格式代码: $element = new Zend_Form_Element_Text('form_resource_type'); $validator = new Zend_Validate_NotEmpty(); $validator->setMessages( array('isEmpty' => 'Please choose type of resource') ); $element->addValidato

我通常以以下方式使用Zend Form的消息:

格式代码:

$element = new Zend_Form_Element_Text('form_resource_type');
$validator = new Zend_Validate_NotEmpty();
$validator->setMessages(
     array('isEmpty' => 'Please choose type of resource')
);
$element->addValidator($validator);
$element->setRequired(true);
$this->addElement($element);
视图中的代码:

<?php foreach($subForm->getElementsAndSubFormsOrdered() as $element):?>
     <?php echo $element?>
     <?php foreach($element->getMessages() as    $errorMsg):?>
         <?php echo $this->escape($errorMsg);?>
    <?php endforeach;?>
<?php endforeach;?>

所以,为了输出错误消息,我使用了getMessages()函数。但现在在某些情况下(在字段值的特殊组合的情况下),我需要将元素标记为无效并添加自定义错误消息。我尝试使用addError($message)函数,但它将消息添加到_errorMessages属性,而将getMessages输出_messageszend_Form_元素属性

我没有找到向_messages属性添加消息的功能。我该怎么做?或者我不应该直接使用此属性并更改在视图中输出错误消息的方式

UPD:


我使用Zend Framework 1.12,因为您正在从表单元素访问错误消息。然后,您可以尝试在控制器中使用以下语句在元素中设置消息:

$form->getElement('elementName')->addErrorMessage('custom Message');

然后,您可以按自己的方式打印消息。

您可以使用
markAsError()
将元素标记为无效
我想这会对你有好处的

if($error)
{
    $element->addErrorMessage('Custom Error');
    $element->markAsError();
}

如果使用此函数,则addErrorMessage()表单数据不会标记为无效。据我所知,addErrorMessage()修改_errorMessages属性,而$element->getMessages()返回_messages属性值。
$form->getElement('elementName')->addError('your message')