2011-05-02 68 views
1

以我的zend形式爲每個元素設置了decarators,而不是我可以設置適用於所有元素的單個decorater。如何將一個裝飾器設置爲zend形式的多個元素

目前..

$code = new Zend_Form_Element_Text("mealplancode"); 
    $code->setLabel("Code :"); 
    $code->setDecorators(
         array(
           array('ViewHelper', 
             array('helper' => 'formText') 
          ), 
          array('HtmlTag', 
             array('tag' => 'div', 'class' => '') 
          ), 
          array('Label', 
             array('class' => 'label') 
          ), 
         ) 
        ); 

    $name = new Zend_Form_Element_Text("mealplanname"); 
    $name->setLabel("Name :"); 
    $name->setDecorators(
         array(
           array('ViewHelper', 
             array('helper' => 'formText') 
          ), 
          array('HtmlTag', 
             array('tag' => 'div', 'class' => '') 
          ), 
          array('Label', 
             array('class' => 'label') 
          ), 
         ) 
        ); 

我想設置的裝飾既$ name和$代碼在一個單一的setDecorator() 我可以做到這一點

回答

2

在窗體類中定義一個裝飾領域能夠將它應用到任何形式的元素,如:

public $elementDecorators = array(
     'ViewHelper', 
      array(array('data'=>'HtmlTag'), array('tag' => 'td')), 
      array('Label', array('tag' => 'td')), 
      array(array('row'=>'HtmlTag'),array('tag'=>'tr'))); 

而且就像在你的代碼,你可以設置裝飾:

$formElement->setDecorators($this->elementDecorators); 
+0

是啊我明白了,謝謝你的幫助朋友................. – 2011-05-03 03:35:33

相關問題