2015-04-16 25 views
1

所以我有ListView控件的小窗口顯示文本Yii的2.0控件元素選項

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> 

如何添加里面的html元素<li> like like:

<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>元素,我使用「選項」標籤旁邊還試圖和它,而不是改變li屬性(不是在它裏面創建)

回答

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

所以encodeLabels屬性是我顯然想念的..謝謝你的答案 –

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

不是最佳實踐在標籤中使用html。使用'Html'類生成html代碼。 –