Zend Framework中的DisplayGroup装饰器

时间:2010-11-30 16:24:53

标签: zend-framework

我正在使用DisplayGroup渲染组中的几个元素。现在我想要做的是将该组渲染到单个表行中。但事实证明,DisplayGroups上的装饰器 NOT 的工作方式与它们在简单元素上的工作方式相同。一个例子:

 $content = $this->getDisplayGroup('group');
 $content->setDecorators(array(
      'FormElements',
       array('HtmlTag', array('tag' => 'table', 'class' => 'element')),
        ));

这就是这样 我的DisplayGroup末尾的<table></table>。我也尝试过别名:

array(array('elementDiv' => 'HtmlTag'), array('tag' => 'table')),
'FormElements',
array(array('td' => 'HtmlTag'), array('tag' => 'table')),

仍然将它们放在一个地方,而不是两个都尝试openOnlycloseOnly

array(array('elementDiv' => 'HtmlTag'), array('tag' => 'table','openOnly'=>true)),
'FormElements',
array(array('td' => 'HtmlTag'), array('tag' => 'table','closeOnly'=>true)),

它仍然只放入结束标记。如果我将这些更改为<td>,一切正常,但不是<table>我错过了什么?

1 个答案:

答案 0 :(得分:0)

所以, jah 是正确的,没有添加的表实际上是源查看器的错误。

$group->setDecorators(array(

            'FormElements',
        array('Description', array('escape' => false, 'tag' => false)),
        array('HtmlTag', array('tag' => 'table', 'class' => 'element')),
));

这对我有用。不确定Description Decorator的功能,但表格会根据需要进行渲染。