2014-01-24 31 views
1

當函數存在時,cwebuser.isShop未定義。不明白爲什麼。我搜查了四周,我發現所有的問題都是同一個問題,沒有答案? 我想要做的是從模塊名稱店登錄,但我沒有定義。我還有什麼遺漏?當函數存在時,cwebuser未定義

在我的主要模塊;

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; 
    } 

回答

2

如果你寫

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

您試圖訪問稱爲isShop對象用戶的變量。兩種情況:

  1. isShop是可變
  2. isShop是虛擬可變

此致是第二種情況。這意味着isShop是調用Object用戶的函數getIsShop的結果,但是您的函數僅命名爲isShop

兩個解決方案:

  1. 使用

Yii::app()->getModule('shop')->user->isShop()功能isShop重命名爲getIsShop

  • 直接調用主模塊中的功能。 [見括號]

  • +0

    哦,明白了!感謝您的解釋! – JamAndJammies