Yii2:如何将图像添加为导航栏菜单项

问题描述 投票:0回答:1

我正在努力尝试在Navbar menuItem中添加图像。

它在品牌标签中工作正常但不适用于其他菜单项(我想在他的名字附近显示记录的用户图像)

我尝试了好几次,但似乎没有让它发挥作用,非常感谢你的帮助...

守则是这样的:

    <?php $this->beginBody() ?>
    <div class="wrap">
<?php

NavBar::begin([

    'brandLabel' => Html::img('@themes'.'/siteImages/Logo.jpg', ['alt'=>Yii::$app->name]), 
    'options' => [
        'class' => 'navbar-default navbar-fixed-top',
    ],
]);

// display Login page to guests of the site
if (Yii::$app->user->isGuest) {

    $menuItems[] = ['label' => Yii::t('app', 'Login'), 'url' => ['/site/login'],
                    'options' => [
                        'class' => 'navbar-right',
                    ],];
}
else
{
           // Show sales content to sales+ users
    if ( Yii::$app->user->can('useSalesContent')) 
    {
        $menuItems[] = ['label' => Yii::t('app', 'Sales'), 
                        // 'class' => "pull-left",
                        'url' =>  Yii::$app->homeUrl,
                        'linkOptions' => ['id' => 'sales',
                                          'class' => 'navbar-left',
                        ],
                    ];


    // Show Admin content to manager+ users
    if (Yii::$app->user->can('useAdminContent')) 
    {
        $menuItems[] = ['label' => Yii::t('app', 'Administration'), 
                        'url' => Yii::$app->homeUrl,
                        'linkOptions' => ['id' => 'admin'],
                        'options' => [
                            'class' => 'navbar-left',
                        ],];

    }

    // display Logout to logged in users
    if (!Yii::$app->user->isGuest) {
        $menuItems[] = 
        [
            'label' => Yii::t('app', 'Logout'). ' (' . Yii::$app->user-
                                          >identity->username . ')',
            'url' => ['/site/logout'],
            'linkOptions' => ['data-method' => 'post']

            //****** This is where I want the user image to be shown ****//
        ];
    }

}

// echo navbar with selected items

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

NavBar::end();
?>

<div class="container">
    <?= Alert::widget() ?>
    <?= $content ?>
</div>

endBody() ?>
image yii2 navbar
1个回答
0
投票

如果用户模型具有属性imageUrl,则可通过以下方式访问:

Yii::$app->user->identity->imageUrl

这将变成类似于:

如果您想将其添加到注销按钮:

$menuItems[] = [ 'encode'=>false, label' => Yii::t('app', 'Logout'). ' (' . Yii::$app->user- >identity->username . ') ' . Html::img(Yii::$app->user- >identity->imageUrl), 'url' => ['/site/logout'], 'linkOptions' => ['data-method' => 'post']];确保你包括'encode' => false,

要将其添加为单独的项目(例如,为其提供不同的链接):

$menuItems[] = [ 'encode' => false, 'label' => Html::image(Yii::$app->user- >identity->imageUrl)];

编辑:

确保在视图中包含带有use语句的Html,或者使用Html类提供完整的名称空间声明。

© www.soinside.com 2019 - 2024. All rights reserved.