我在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'
错误。
这是什么原因,我该如何解决这个问题。感谢!!!
答案 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并更改了授权流程并且有效。仍然无法弄清楚为什么会出现这种警告。