所以我有一个listView小部件,显示文本列表
echo Menu::widget([
'options' => ['class'=>'nav navbar-nav side-nav'],
'items' => [
['label' =>'Dashboard', ],
['label' => 'Products'],
]
]);
当我打开浏览器时,结果是:
<ul class="nav navbar-nav side-nav">
<li>Dashboard</li>
<li>Products</li>
</ul>
如何在<li>
中添加html元素,如下所示:
<ul class="nav navbar-nav side-nav">
<li><i class='fap fap-dashboard'>Dashboard</i></li>
<li><b class='fap fap-product'>Products</b></li>
</ul>
使用小部件?
我尝试将另一个item元素放在label旁边,但是它创建了另一个<ul>
元素,我还尝试在label旁边使用'options',而是改为li
属性(不创建)在里面)
答案 0 :(得分:5)
要实现目标,您需要将encodeLabels
属性设置为false
(see)。像这样的代码(它是工作代码):
Menu::widget([
'options' => ['class'=>'nav navbar-nav side-nav', 'format' => 'raw'],
'encodeLabels' => false,
'items' => [
['label' => Html::tag('i', 'Dashboard',['class' => 'fap fap-dashboard'])],
['label' => Html::tag('b', 'Products',['class' => 'fap fap-product'])],
]
]);
答案 1 :(得分:1)
这可能有效 -
echo Menu::widget([
'options' => ['class'=>'nav navbar-nav side-nav'],
'items' => [
['label' =>'<i class="fap fap-dashboard">Dashboard</i>',"encode"=>false, ],
['label' =>'<b class="fap fap-product">Products</b>',"encode"=>false],
]
]);