当函数存在时,cwebuser是未定义的

时间:2014-01-24 13:49:36

标签: yii

当函数存在时,未定义cwebuser.isShop。不明白为什么。我四处搜索,我发现的是同一个问题,没有答案? 我想要做的是从模块名称商店登录,但我没有定义。我还缺少什么?

在我的主模块中;

public function beforeControllerAction($controller, $action)
    {
    if(Yii::app()->getModule('shop')->user->isShop)  
        Yii::app()->getModule('shop')->user->setReturnUrl('shop/default/login');  
        else  
return false;
}

在webuser中:

function isShop(){
        if (!isset(Yii::app()->user->user))
            return false;
        $user = Yii::app()->user->user;
        return intval($user->user_role_id) == 2;
    }

1 个答案:

答案 0 :(得分:2)

如果你写

Yii::app()->getModule('shop')->user->isShop 

您正在尝试访问名为isShop的Object用户的变量。两种情况:

  1. isShop是变量
  2. isShop是虚拟变量
  3. 你的第二个案例。这意味着isShop是调用Object用户的函数getIsShop的结果,但您的函数仅被命名为isShop

    两种解决方案:

    1. 将函数isShop重命名为getIsShop
    2. 使用
    3. 直接调用主模块中的功能

      Yii::app()->getModule('shop')->user->isShop() [见圆括号]