我使用CMenu小部件创建了一个类似Twitter Bootstrap导航栏的菜单:
<?php
$this->widget( 'zii.widgets.CMenu', array(
'items' => array(
array(
'label' => 'Home',
'url' => array( '/site/index' ),
),
array(
'label' => 'Dropdown <b class="caret"></b>',
'url' => '#',
'submenuOptions' => array( 'class' => 'dropdown-menu' ),
'items' => array(
array(
'label' => 'Submenu Item 1',
'url' => array( '/user/create' ),
),
array(
'label' => 'Submenu Item 1',
'url' => array( '/user/list' ),
),
),
'itemOptions' => array( 'class' => 'dropdown' ),
'linkOptions' => array( 'class' => 'dropdown-toggle', 'data-toggle' => 'dropdown' ),
),
'htmlOptions' => array( 'class' => 'nav' ),
)); ?>
Run Code Online (Sandbox Code Playgroud)
此代码生成菜单,其中包含2个项目和第二个菜单项的1个子菜单.精细.但唯一不起作用的是'label' => 'Dropdown <b class="caret"></b>',第9行.它Dropdown <b class="caret"></b>在页面上呈现.所以我看到了标题'Dropdown <b class="caret"></b>'而不是Dropdown ?.
如何更改代码以在菜单标签中显示未转义的HTML?
感谢您的关注.
dIn*_*0nG 22
你必须设置encodeLabel的属性CMenu来false
<?php
$this->widget('zii.widgets.CMenu', array(
'encodeLabel' => false,
'htmlOptions' => array('class' => 'nav'),
'items' => array(
array(
'label' => 'Home',
'url' => array('/site/index'),
),
array(
'label' => 'Dropdown <b class="caret"></b>',
'url' => '#',
'submenuOptions' => array('class' => 'dropdown-menu'),
'items' => array(
array(
'label' => 'Submenu Item 1',
'url' => array('/user/create'),
),
array(
'label' => 'Submenu Item 1',
'url' => array('/user/list'),
),
),
'itemOptions' => array('class' => 'dropdown'),
'linkOptions' => array('class' => 'dropdown-toggle', 'data-toggle' => 'dropdown'),
),
),
));
?>
Run Code Online (Sandbox Code Playgroud)