我已经以这种方式设置了表单装饰器:
<?php
$this->setElementDecorators(array(
'Label',
array(array('labelTd' => 'HtmlTag'), array('tag' => 'td', 'class' => 'name')),
array(array('elemTdOpen' => 'HtmlTag'), array('tag' => 'td', 'class' => 'form','openOnly' => true, 'placement' => 'append')),
'ViewHelper',
'Errors',
array(array('elemTdClose' => 'HtmlTag'), array('tag' => 'td', 'closeOnly' => true, 'placement' => 'append')),
array(array('row' => 'HtmlTag'), array('tag' => 'tr', 'class' => 'question')),
));
$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',
array('HtmlTag', array('tag' => 'table', 'class' => 'simpleform')),
'Form'
));
它输出一个简单的表
<table class="simpleform">
<tbody>
<tr class="question">
<td class="name">
<label class="required" for="email">Your email</label>
</td>
<td class="form">
<input type="text" value="asasd" id="email" name="email">
<ul class="errors">
<li>'asasd' is no valid email address in the basic format local-part@hostname
</li>
<li>Information not found
</li>
</ul>
</td>
</tr>
<tr>
<td class="element"></td>
<td class="element">
<input type="submit" value="Send" id="submit" name="submit">
</td>
</tr>
</tbody>
</table>
我想将ul.errors包装到TD并将其作为第三个单元格。 像那样:
<tr class="question">
<td class="name">
<label class="required" for="email">Your email</label>
</td>
<td class="form">
<input type="text" value="asasd" id="email" name="email">
</td>
<td>
<ul class="errors">
<li>'asasd' is no valid email address in the basic format local-part@hostname
</li>
<li>Information not found
</li>
</ul>
</td>
</tr>
和..怎么做? :)
答案 0 :(得分:1)
我建议您创建自己的错误装饰器,它将满足您的需要 例如,您可以将其设置为输出
</td>
<td>
<ul class="errors">
<li>'asasd' is no valid email address in the basic format local-part@hostname
</li>
<li>Information not found
</li>
</ul>
如果您知道错误将永远是<td></td>
代码中的表格的一部分。
一般而言,没有框架足够灵活,可以涵盖所有场景,而框架不应该减慢开发速度。如果您无法使用框架执行某些操作,并且无法扩展框架以满足您的要求,请绕过它并在此特定情况下不要使用它。并不是说所有表格都必须使用Zend_Form
:)