自定义装饰器可以访问 $content 的部分内容吗
在自定义装饰器中,我用 div 包装元素内容。此代码在 周围创建一个
和div
。标签; element
public function render($content)
{
return '<div class="test">' . $content . '</div>';
}
有没有办法可以进一步访问这两个部分,dd 和 dt。例如,div 可能仅围绕
或
$content
的不同部分?In a custom decorator, I'm wrapping the element content with a div. This code creates a div
around both the <dt> label
and the <dd> element
public function render($content)
{
return '<div class="test">' . $content . '</div>';
}
Is there a way I can further access those 2 parts, the dd and dt. Such as maybe wrap the div around only the <dt>
or the <dd>
. How do I access the different parts of $content
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果没有必要为您想要实现的目标创建自定义装饰器,您可以尝试直接装饰元素,如下所示:
$elementDecorators = array(
'视图助手',
array(array('element'=>'HtmlTag'), array('tag' => 'dd')),
array('标签', array('tag' => 'dt')),
array(array('wrapper'=>'HtmlTag'), array('tag' => 'div')),
);
会产生如下所示的标记:
因此,如果您想在 dd 或 dt 之内/之间/之前/之后添加任何您想要的内容,您可以修改如下:
$elementDecorators = array(
'视图助手',
array(array('addition'=>'HtmlTag'), array('tag' => 'span')),
array(array('element'=>'HtmlTag'), array('tag' => 'dd')),
array('标签', array('tag' => 'dt')),
array(array('wrapper'=>'HtmlTag'), array('tag' => 'div')),
);
会产生:
它只是在 dd 标签之前将 span 标签包裹在元素周围。
装饰后,您可以简单地将变量添加为元素的装饰器。
If it is not that necessary to create a custom decorator for what you want to achieve, you can try decorating the element directly like the following:
$elementDecorators = array(
'ViewHelper',
array(array('element'=>'HtmlTag'), array('tag' => 'dd')),
array('Label', array('tag' => 'dt')),
array(array('wrapper'=>'HtmlTag'), array('tag' => 'div')),
);
that shud produce a markup like so:
<div>
<dt><label/></dt>
<dd><input/></dd>
</div>
and so if you want to add anything you want within/between/before/after the dd or dt you can modify as thus:
$elementDecorators = array(
'ViewHelper',
array(array('addition'=>'HtmlTag'), array('tag' => 'span')),
array(array('element'=>'HtmlTag'), array('tag' => 'dd')),
array('Label', array('tag' => 'dt')),
array(array('wrapper'=>'HtmlTag'), array('tag' => 'div')),
);
that shud produce:
<div>
<dt><label/></dt>
<dd><span><input/></span></dd>
</div>
which just wraps a span tag around the element before the dd tag does.
after decorating you can simply add the variable as the decorator of the element.