Yii ::使用未定义的常量

时间:2013-07-22 05:23:45

标签: php yii

我在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' 错误。 这是什么原因,我该如何解决这个问题。感谢!!!

2 个答案:

答案 0 :(得分: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,您可能想要查看这些行是否会导致问题。

答案 1 :(得分:0)

关注this post并更改了授权流程并且有效。仍然无法弄清楚为什么会出现这种警告。