2013-08-28 81 views
1

如果您以前沒有登錄並因此重定向到登錄網頁,我想要限制菜單選項卡。使用Yii限制菜單選項卡

例如,如果我在佈局/ main.php:

<div id="mainmenu"> 
    <?php $this->widget('zii.widgets.CMenu',array(
     'items'=>array(
      array('label'=>'Visit us', 'url'=>array('/visit/index')), 
      array('label'=>'Employee', 'url'=>array('/employee/index')), 
      array('label'=>'Login', 'url'=>array('/site/login'), 'visible'=>Yii::app()->user->isGuest), 

,我要限制的菜單標籤員工什麼,我應該在哪裏寫的限制?

我在另一篇文章出頭這樣的閱讀,但我不知道如何使用它:

if(!isset($_SESSION["user"])) 
{ 
    header("Location: homepage.php"); 
} 

請,有人可以幫助我嗎?非常感謝你

回答

1

顯然是written in docs。要定義如果菜單元素是可見的,只需使用visible參數,可以相同的登錄頁面,但否定:

array('label'=>'Visit us', 'url'=>array('/visit/index')), 
array('label'=>'Employee', 'url'=>array('/employee/index'), 'visible'=>!Yii::app()->user->isGuest), 
array('label'=>'Login', 'url'=>array('/site/login'), 'visible'=>Yii::app()->user->isGuest), 

要控制對員工使用access control filter

+1

嗨,PeterM,非常感謝你,對不起我的問題,但在創建帖子之前,我嘗試使用「'visible'=> Yii :: app() - > user-> isGuest)」,並且你可以想象它沒有作品...我忘了符號「!」...現在一切正常。再次感謝。 –

0

我沒有得到你preperly但我想你不想顯示員工菜單鏈接到來賓用戶....

,如果你正在尋找,那麼你必須檢查裏面主要條件.PHP只有...

if(Yii::app()->user->isGuest()) 
{ 
    <div id="mainmenu"> 
     <?php $this->widget('zii.widgets.CMenu',array(
     'items'=>array(
     array('label'=>'Visit us', 'url'=>array('/visit/index')), 
     // array('label'=>'Employee', 'url'=>array('/employee/index')), 
     array('label'=>'Login', 'url'=>array('/site/login'), 'visible'=>Yii::app()->user->isGuest), 
    //your code 
} 
else 
{ 
    <div id="mainmenu"> 
     <?php $this->widget('zii.widgets.CMenu',array(
     'items'=>array(
     array('label'=>'Visit us', 'url'=>array('/visit/index')), 
     array('label'=>'Employee', 'url'=>array('/employee/index')), 
     array('label'=>'Login', 'url'=>array('/site/login'), 'visible'=>Yii::app()->user->isGuest), 
     //your code 
} 

你說你要傳輸的用戶登錄頁面,如果他不登錄....這個事情,如果你使用的是內置警予登錄表單

Yii中自動完成
+0

您好Kalpit,謝謝你幫我,但我正在尋找類似於PeterM的答案,因爲我認爲他的解決方案更好,更容易。再次感謝。 –