Php Zend表单:向元素添加消息
我通常以以下方式使用Zend Form的消息: 格式代码: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
$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')代码>