2012-07-26 67 views
0

我是在Zend Framework中開發的新手。我做了一些關於表單裝飾器的研究,但我想要一些特定的東西。Zend Framework:幫助需要與表格裝飾器

這就是我想要的:

<table> 
<tr> 
    <td colspan="2"> 
     <ul class="errors"> 
      <li>error</li> 
     </ul> 
    </td> 
</tr> 
<tr> 
    <td>Label :</td> 
    <td>input field</td> 
</tr> 
<tr> 
    <td></td> 
    <td>Submit Button</td> 
</tr> 
</table> 

我所得到的是:

$this->setElementDecorators(array(
     'ViewHelper', 
     array(array('data' => 'HtmlTag'), array('tag' => 'td', 'class' => 'element')), 
     array('Label', array('tag' => 'td')), 
     array(array('row' => 'HtmlTag'), array('tag' => 'tr')) 
    )); 

    $submit->setDecorators(array('ViewHelper', 
     array(array('data' => 'HtmlTag'), array('tag' => 'td', 'class' => 'element')), 
     array(array('emptyrow' => 'HtmlTag'), array('tag' => 'td', 'class' => 'element', 'placement' => 'PREPEND')), 
     array(array('row' => 'HtmlTag'), array('tag' => 'tr')) 
    )); 

    $this->setDecorators(array(
     'FormElements', 
     'Errors' 
     array('HtmlTag', array('tag' => 'table')), 
     'Form' 
    )); 

,但它帶有一個htmlspecialchar警告,UL是空的。

有沒有可能解決這個問題?

回答

0

驗證錯誤與個人輸入有關,而不是與表單相關,所以我相信您可能很難使用裝飾器來使用它。

我會在視圖腳本中單獨呈現單個表單元素以及驗證錯誤。你需要準備這些錯誤以便自己展示,並且完全擺脫裝飾器,只使用ViewHelper。那麼你可以這樣做:

<form method="post"> 
    <table> 
    <tr> 
    <td colspan="2"><?php echo $this->errors; ?></td> 
    </tr> 
    <tr> 
    <td><?php echo $this->form->foo->getLabel(); ?></td> 
    <td><?php echo $this->form->foo; ?></dt> 
    </tr> 
    </table> 
</form>