ZF2:在导航菜单中渲染HTML标签(关闭HTML-escaper)

时间:2015-01-25 17:39:17

标签: php zend-framework2

问题:

如果您想在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标记?

1 个答案:

答案 0 :(得分:3)

我想自己回答这个问题,因为我无法在其他任何地方找到答案,这对你有帮助。

解决方案非常简单。视图帮助器$this->navigation('navigation')->menu()有一个方法可以完成这个!该方法称为->escapeLabels()。只需添加它即可完成:

<?php echo $this->navigation('navigation')->menu()->escapeLabels(false)?>

警告:当然,从您无法信任的来源(例如用户输入)渲染非转义文字时要小心。