我需要输出以下表单布局:
<tr><td>Label</td><td>Element</td></tr>
<tr><td></td><td>ElementErrors</td></tr>
元素和标签需要垂直居中,错误应与元素具有相同的缩进。
我可以使用装饰器来实现这一点,或者我可能需要更改标记吗?
答案 0 :(得分:0)
你会使用装饰器。有关自定义装饰器的最简单示例,请查看Matthew's tutorial here,特别是My_Decorator_SimpleInput装饰器。
所以你可以按照
的方式做点什么class My_Decorator_SimpleInput extends Zend_Form_Decorator_Abstract
{
protected $_format = '<tr><td><label for="%s">%s</label></td><td><input id="%s" name="%s" type="text" value="%s"/></td></tr>';
public function render($content)
{
$element = $this->getElement();
$name = htmlentities($element->getFullyQualifiedName());
$label = htmlentities($element->getLabel());
$id = htmlentities($element->getId());
$value = htmlentities($element->getValue());
$markup = sprintf($this->_format, $id, $label, $id, $name, $value);
return $markup;
}
}