2017-07-28 14 views
1

に私はこのような条件を書きたいの条件は、例えば:Yii2:?レイアウト/ main.php

Yii::$app->user->isGuest ? (

    ['label' => 'Sign Up', 'url' => ['/site/signup']] 

):(
    //do nothing 
) 

?:条件はelse一部せずにすることはできますか?

EDIT:

これは、アレイ'items' => []に送信され、以下のコードが動作しない理由ですされています

if(Yii::$app->user->isGuest)(  
     ['label' => 'Sign Up', 'url' => ['/site/signup']];  
) 

フルコード:

NavBar::begin([ 
     //somecode 
    ]); 
    echo Nav::widget([ 
     'options' => ['class' => 'navbar-nav navbar-right'], 
     'items' => [ 

      Yii::$app->user->isGuest ? (

       ['label' => 'Sign Up', 'url' => ['/site/signup']] 

      ):(
       //HOW TO DO NOTHING HERE??? 
      ) 

     ], 
    ]); 
+0

多分に便利、あなたは現在のコードが配置されているより多くのコードをあなたの質問を更新してくださいすることができますか?それは方法かもしれません –

+0

私はちょうどそれをした –

答えて

1

You may write this as -

['label' => 'Sign Up', 'url' => ['/site/signup'], 'visible' => Yii::$app->user->isGuest ] 
+0

それは、 'items '=> []' –

+0

の配列に送信されるため、動作しませんエラーがあります:'ラベル 'が必要です:( –

+0

try '[']'の代わりに' 'null''を返します。 –

1

配列内の条件を使用すると可能です。

多分あなたはこのリンクをチェックすることができます。

Conditionally show items of Nav widget

大丈夫 CMIIW

+0

あなたの答えをありがとう。それは便利なリンクです –

関連する問題