Yukarıdaki öneri varsayılan dekoratörler değişebilir dikkate almaz. Bunun yerine dekoratörler temizleyerek ve sonra gerekmez dışındaki tüm yeniden uygulama, bu gibi form başlatma zaman gerekmez dekoratörler devre dışı bırakmak için daha iyi olurdu:
class My_Form_Login extends Zend_Form
{
public function init()
{
$this->setMethod('post');
$username = new Zend_Form_Element_Text('auth_username');
$username->setLabel('Username')
->setRequired(true)
->addValidator('NotEmpty')
->removeDecorator('Errors')
->addErrorMessage("Please submit a username.");
etc.....
Daha sonra, formu kullanın yerde, (formunuza ayırıyordu görüntülemek için planlıyorsanız) mesajları görüntülemek için nasıl karar verebilir. Bu formun bir parçası olmalıdır eğer Tabii ki, sadece uygun bir dekoratör oluşturmak ve yukarıda form elemanı init yöntemine ekleyin. Here ZendCasts.com gelen formu dekoratörler güzel bir öğretici olduğunu
Formun kendisi dışında mesajları gösterme örneği.
$elementMessages = $this->view->form->getMessages();
// if there actually are some messages
if (is_array($elementMessages))
{
foreach ($elementMessages as $element)
{
foreach ($element as $message)
{
$this->view->priorityMessenger($message, 'notice');
}
}
}
Yukarıda kullanılan priorityMessenger-yardımcı burada bulunabilir: http://emanaton.com/code/php/zendprioritymessenger