2014-02-12 78 views
0

我通常使用的Zend窗體的下列方式的消息元素:Zend的形式:添加消息

代碼形式:

$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框架的1.12

+0

'$形式 - > getElement( '的ElementName')的元素 - > addError('您的留言');' –

回答

0

因爲你是從表單元素訪問的錯誤消息。然後,你可以嘗試通過在控制器中使用下面的語句中的元素設置消息:

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

然後,您將能夠以自己的方式來打印信息。

+0

如果我使用這個函數,addErrorMessage()表單數據沒有被標記爲無效。據我所知addErrorMessage()修改_errorMessages屬性,而$ element-> getMessages()返回_messages屬性值。 – Tamara

0

可以使用markAsError()爲標誌爲無效Custom Error Messages
我認爲這會做的伎倆爲您

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