2011-08-11 72 views
0

有没有什么办法可以用这个来设置我所有的Zend_Forms?Zend_Form和装饰器布局

$this->element->setDecorators(array(
    'ViewHelper', 
    'Errors', 
    'Label', 
    array('HtmlTag', array('tag' => 'div', 'id' => '[MyElementLabel]'))); 

而不是做我的Zend_forms的一个接一个的元素?我的意思是类似于Form布局

回答

2

覆盖默认装饰器的最简洁的方法是创建自己的一组元素并覆盖loadDefaultDecorators()方法。

通过将自定义前缀路径添加到它的插件加载器,您可以获得Zend_Form来加载您的类而不是它自己的类。

下面是我的自定义一些例子设置表单元素的

这有点过时了因为我没有提交最近的更改,但你正在寻找的东西是适用的(插件加载器,默认装饰器等)

0

如果您正在寻找一种方法来处理Zend_Forms而不处理装饰器(一个快速和简单的方法)检查​​出:Zend_Form : data table with checkboxes

忽略复选框的东西,重要的部分是按照你想要的方式在你的视图中布置你的窗体(或者在部分如果你想重用表单html),所以将窗体传递给您的视图并根据需要将这些元素调用到html中。