我正在使用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')),
仍然将它们放在一个地方,而不是两个都尝试openOnly
和closeOnly
:
array(array('elementDiv' => 'HtmlTag'), array('tag' => 'table','openOnly'=>true)),
'FormElements',
array(array('td' => 'HtmlTag'), array('tag' => 'table','closeOnly'=>true)),
它仍然只放入结束标记。如果我将这些更改为<td>
,一切正常,但不是<table>
我错过了什么?
答案 0 :(得分:0)
所以, jah 是正确的,没有添加的表实际上是源查看器的错误。
$group->setDecorators(array(
'FormElements',
array('Description', array('escape' => false, 'tag' => false)),
array('HtmlTag', array('tag' => 'table', 'class' => 'element')),
));
这对我有用。不确定Description Decorator的功能,但表格会根据需要进行渲染。