通常我用以下方式使用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输出_messages Zend_Form_Element属性。
我没有找到向_messages属性添加消息的功能。我怎样才能做到这一点?或者我不应该直接使用此属性并更改在视图中输出错误消息的方法?
UPD:
我使用Zend Framework 1.12
答案 0 :(得分:0)
因为您正在从表单元素访问错误消息。然后,您可以尝试使用控制器中的以下语句在元素中设置消息:
$form->getElement('elementName')->addErrorMessage('custom Message');
然后,您就可以按照自己的方式打印邮件。
答案 1 :(得分:0)
您可以使用markAsError()
将元素标记为无效Custom Error Messages
我认为这会为你做到这一点
if($error)
{
$element->addErrorMessage('Custom Error');
$element->markAsError();
}