2013-08-28 47 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的答案,因为我认为他的解决方案更好,更容易。再次感谢。 –