2017-12-23 28 views
0

Navbar menuItem 안에 이미지를 추가하려고 시도하고 있습니다.Yii2 : 이미지를 navbar menuitem으로 추가하는 방법

그것은 brandLabel 에서 잘 작동하지만 anoter 메뉴 항목 내가 여러 번 Tryed

(내가 그의 이름 근처 로그인 사용자 이미지를 표시 할)에서 작동하지 않습니다 그러나 작동하도록 나던 것,

<?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> 

,536 : 코드는 이것이다 ...

을 당신의 도움을 바랍니다 뵙죠시겠습니까endBody()>

답변

0

사용자 모델은이를 통해 액세스 될 속성 이미지 URL이 제공 : 당신이 항목을 추가 할 경우

:이 같은이 될 것

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

편집 :

당신이 당신의보기에서 사용하는 문으로 HTML을 포함해야합니다, 또는 전체 네임 스페이스 선언을 Html 클래스와 함께 제공하십시오.

+0

감사합니다. 괜찮습니다. (단지 Html :: img 대신에 Html :: image로 변경했습니다. –

+0

네, 저는 그것을 보았습니다. 오래된 Yii 구문 인 CHtml :: image()와 혼동했습니다. 수락 된 대답으로 받아 들여주십시오. –

+1

@MichalYosef 받아 들여야합니다. 대답은 Maarten이 제공합니다. ... 여기를 참조하십시오. http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – scaisEdge