Yii默认范围,基于if语句有2个可能的条件

Yii默认范围,基于if语句有2个可能的条件,yii,Yii,我是MVC和Yii的新手,我尝试为用户提供两个角色。我使用用户和权限模块。学生可以查看、编辑、创建记录,但只能查看自己的记录(其中userId是他们的Id),而导师应该只能在另一列中查看分配给他们的记录,每个记录都有教程 我试图使用defaultScope,但它忽略了if语句,并且总是直接进入第一个条件 这是我的代码: public function defaultScope() { if($userId=Yii::app()->user->id){

我是MVC和Yii的新手,我尝试为用户提供两个角色。我使用用户和权限模块。学生可以查看、编辑、创建记录,但只能查看自己的记录(其中userId是他们的Id),而导师应该只能在另一列中查看分配给他们的记录,每个记录都有教程

我试图使用defaultScope,但它忽略了if语句,并且总是直接进入第一个条件

这是我的代码:

public function defaultScope()
{         
    if($userId=Yii::app()->user->id){
        return array(
            'condition'=>'userid='.Yii::app()->user->id, //Scope is limited to logged in user only            
        );     
    } else {
        echo "You have Read Only Access";
        return array(
            'condition'=>'tutorid='.Yii::app()->user->id, //Scope is limited to tutor Id for each record           
        );
    }
}   
应该是

public function defaultScope()
{         
    if(Yii::app()->user->checkAccess('tutor') == false)
    {
        return array(
            'condition'=>'userid='.Yii::app()->user->id, //Scope is limited to logged in user only            
        );     
    } else {
        echo "You have Read Only Access";
        return array(
            'condition'=>'tutorid='.Yii::app()->user->id, //Scope is limited to tutor Id for each record           
        );
    }
}

defaultScope
是邪恶的。Use scopes.condition
$userId=Yii::app()->user->id
始终返回true。使用
if(Yii::app()->user->id)
onlytanks很多人!现在我终于可以睡觉了。对Yii v1的帮助太少了。