2013-03-24 82 views
0

* 我說的英文不太好。所以我現在要發佈代碼。 *Zend Form Decorators問題

表單代碼:

protected $elementDecorators = array('ViewHelper','Errors','Description','Label', 
      array('HtmlTag',array('tag' => 'div','class' => '_wrapperElement')   
      )); 

    public function init(){ 
     $this->addElement('text','mytext',array(
     'class' => '_inputText', 
     'label' => 'Mytext', 
     'required' => true, 
     'decorators' => $this->elementDecorators 
     )); 

     $this->setDecorators(array('FormElements',array('HtmlTag',array('tag' => 'div','class' => '_formWrapper')),'Form')); 

    } 

輸出:

<form method="post" action="" enctype="application/x-www-form-urlencoded"> 
    <div class="_formWrapper"> 
     <div class="_wrapperElement"> 
      <label class="required" for="mytext">Mytext</label> 
      <input type="text" class="_inputText" value="" id="mytext" name="mytext">  
     </div> 
    </div> 
</form> 

現在我想一個div包裝標籤和輸入元素是這樣的:

<form method="post" action="" enctype="application/x-www-form-urlencoded"> 
    <div class="_formWrapper"> 
     <div class="_wrapperElement"> 
      <div class="_wrapperLabel"> 
       <label class="required" for="mytext">Mytext</label> 
      </div> 
      <div class="_wrapperInput"> 
       <input type="text" class="_inputText" value="" id="mytext" name="mytext">  
      </div> 
     </div> 
    </div> 
</form> 

如何做到這一點?

我嘗試了很多次,但我做不到。

謝謝!

回答

0

我發現了將裝飾器渲染到ViewScript的解決方案。

1
protected $elementDecorators = array('ViewHelper','Errors','Description', array('Label', array('tag' => 'div', 'class' => '_wrapperLabel') 
     ), 
      array('HtmlTag',array('tag' => 'div','class' => '_wrapperInput')   
      ));