当函数存在时,未定义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;
}
答案 0 :(得分:2)
如果你写
Yii::app()->getModule('shop')->user->isShop
您正在尝试访问名为isShop
的Object用户的变量。两种情况:
isShop
是变量isShop
是虚拟变量你的第二个案例。这意味着isShop
是调用Object用户的函数getIsShop
的结果,但您的函数仅被命名为isShop
。
两种解决方案:
isShop
重命名为getIsShop
Yii::app()->getModule('shop')->user->isShop()
。 [见圆括号]