Yii 2.0 Widget元素选项

时间:2015-04-16 09:02:58

标签: php html tags yii2 yii-widgets

所以我有一个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属性(不创建)在里面)

2 个答案:

答案 0 :(得分:5)

要实现目标,您需要将encodeLabels属性设置为falsesee)。像这样的代码(它是工作代码):

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