我需要输出以下表单布局:
<tr><td>Label</td><td>Element</td></tr>
<tr><td></td><td>ElementErrors</td></tr>
要使元素和标签垂直居中,这是必需的,并且错误应与元素缩进相同。
我可以通过使用装饰器来实现这一目标,还是需要更改标记?
最佳答案
您将使用装饰器。对于自定义装饰器的最简单示例,请检出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;
}
}
关于html - 如何在Zend_Form中为表布局自定义错误输出,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2192980/