Yii 2.0 Widget 元素选项

Yii 2.0 Widget element options

所以我有一个显示文本列表的 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>

通过使用小部件 ?

我曾尝试在标签旁边放置另一个项目元素,但它反而创建了另一个 <ul> 元素,我也尝试在标签旁边使用 'options',但它却改变了 li属性(不在其中创建)

这可能有效-

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],
           ]
        ]);

为了达到您的目标,您需要将 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'])],
                ]
            ]);