0

我在 accessRules() 函数中使用以下代码来匹配登录用户的角色。角色在身份验证过程中使用

 $this->setState('role', $record->role);

accessRules() 函数中的代码是:

    $role="";
    if(Yii::app()->user->getId()===null)
    {
            $role="guest";
    }
    else
    {
        $role=Yii::app()->user->role;
    }

   return array(
        array('allow', 'actions'=>array('index','view'),
            'users'=>array('*'),
        ),
   );

这段代码在我的本地机器上运行良好,但是当我将它上传到服务器时它给了我Use of undefined constant guest - assumed 'guest'错误。这是什么原因,我该如何解决这个问题。谢谢!!!

4

2 回答 2

1
$role="";
if(Yii::app()->user->getId()===null)
{
        $role="guest";
}
else
{
    $role=Yii::app()->user->role;
}

可以简化为:

$role = "guest";
if(Yii::app()->user->id != null) {
    $role = Yii::app()->user->role;
}

试试看这是否能解决你的问题。

你也可以这样做:

$role = "guest";
if(!Yii::app()->user->isGuest) {
    $role = Yii::app()->user->role;
}

但是,您似乎可能在$role其他地方使用了该变量,您可能想看看这些行是否导致了问题。

于 2013-07-22T05:29:02.363 回答
0

关注了这篇文章并更改了授权流程,并且成功了。仍然无法弄清楚为什么显示此警告。

于 2013-07-23T11:18:03.663 回答