Yii2 Nav Bar在菜单项中添加图像

时间:2016-07-22 18:31:55

标签: yii2 yii2-advanced-app

是否可以在Yii2 Bootstrap Nav Bar菜单项中添加图像? 在official doc我找不到任何选项。

我想显示图片而不是标签文字!

导航条形码是。

<?php
    NavBar::begin([
        'brandLabel' => 'My Company',
        'brandUrl' => Yii::$app->homeUrl,
        'options' => [
            'class' => 'navbar-inverse navbar-fixed-top',
        ],
    ]);

   $menuItems = [];

   $menuItems[] = [
            'label' => Yii::t('app','Language'),
            'items' => [
                [
                  'label' => 'English', 
                  'url' => ['site/language','set'=>'en'],
                ],

                '<li class="divider"></li>',

                [
                  'label' => 'Danmark',
                  'url' => ['site/language','set'=>'da'],
                ],

              ],
      ];

3 个答案:

答案 0 :(得分:4)

如果图标可以使用图标

   $menuItems[] = [
        'label' => Yii::t('app','Language'),
        'items' => [
            [
              'label' => 'English', 
              'url' => ['site/language','set'=>'en'],
              'icon'=> 'cog',
            ],

如果img和标签中的html代码

  $menuItems[] = [
        'label' => Yii::t('app','Language'),
        'items' => [
            [
              'label' => '<img src="smiley.gif" ><span>sample</span>', 
              'url' => ['site/language','set'=>'en'],
            ],

我用

use yii\bootstrap\Nav;
use yii\bootstrap\NavBar;

你应该设置'encodeLabels'=&gt;假,

        echo Nav::widget([
            'options' => ['class' => 'navbar-nav navbar-right'],
            'items' => $menuItems,
            'encodeLabels' => false,
        ]);

答案 1 :(得分:3)

添加'encodeLabels'=&gt; false,作为Nav :: widget的属性。否则它不会将代码转换为HTML,它会将其视为字符串,它将显示在标签内部。

echo Nav::widget([
    'options' => ['class' => 'navbar-nav navbar-left'],
    'encodeLabels' => false,
    'items' => [
        [
            'label' => '<span class="glyphicon glyphicon-home"></span>', 
            'url' => ['/site/dashboard'],
        ],
    ] // Close of items
    ]); // Close of Nav::Widget.

答案 2 :(得分:2)

将图像标记添加到&#39; brandLabel&#39;设定:

NavBar::begin([
    'brandLabel' => '<img id="logo" src="/img/logo.svg" alt="logo">',
    'brandUrl' => Yii::$app->homeUrl,
    'options' => [
        'class' => 'navbar',
    ],
]);