我需要输出以下表单布局:

<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/

10-11 09:19
查看更多