ZF2:渲染 HTML-导航菜单中的标签(关闭 HTML-escaper)
ZF2: Rendering HTML-Tags in navigation menu (turning off HTML-escaper)
问题:
如果您想在 Zend Framework 2 导航中放置 HTML 标记,例如像这样:
<?php
'navigation' => array(
default' => array(
array(
'label' => '<i class="fa fa-home"></i>Home',
'route' => 'home',
),
...
我们想用视图助手显示它
<?php echo $this->navigation('navigation')->menu())?>
...ZF 将自动转义所有 HTML 标记。结果将是:
<i class="fa fa-home"></i>Home (No HTML markup was rendered.)
那么我们如何在菜单标签中呈现 HTML 标记?
我想自己回答这个问题,因为我在其他地方找不到答案,这可能对你有帮助。
解决方法非常简单。视图助手 $this->navigation('navigation')->menu()
有一个方法可以做到这一点!该方法称为 ->escapeLabels()
。简单地添加它,你就完成了:
<?php echo $this->navigation('navigation')->menu()->escapeLabels(false)?>
警告:当然,在从您不信任的来源(例如用户输入)呈现未转义文本时要始终小心。
问题:
如果您想在 Zend Framework 2 导航中放置 HTML 标记,例如像这样:
<?php
'navigation' => array(
default' => array(
array(
'label' => '<i class="fa fa-home"></i>Home',
'route' => 'home',
),
...
我们想用视图助手显示它
<?php echo $this->navigation('navigation')->menu())?>
...ZF 将自动转义所有 HTML 标记。结果将是:
<i class="fa fa-home"></i>Home (No HTML markup was rendered.)
那么我们如何在菜单标签中呈现 HTML 标记?
我想自己回答这个问题,因为我在其他地方找不到答案,这可能对你有帮助。
解决方法非常简单。视图助手 $this->navigation('navigation')->menu()
有一个方法可以做到这一点!该方法称为 ->escapeLabels()
。简单地添加它,你就完成了:
<?php echo $this->navigation('navigation')->menu()->escapeLabels(false)?>
警告:当然,在从您不信任的来源(例如用户输入)呈现未转义文本时要始终小心。