2015-10-09 7 views
5

सांत्वना आवेदन में में Yii2 isGuest देने अपवाद जब मैं Yii::$app->user->isGuest इस्तेमाल किया यह नीचे अपवाद दे रहा है:सांत्वना आवेदन

Exception 'yii\base\UnknownPropertyException' with message 'Getting unknown prop 
erty: yii\console\Application::user' 

मैं भी कॉन्फ़िग फ़ाइल में घटकों सरणी में उपयोगकर्ता को जोड़ने की कोशिश की। लेकिन यह काम नहीं किया। कोई विचार क्या मैं गलत कर रहा हूँ?

+1

कृपया, अपनी कॉन्फ़िगरेशन फ़ाइल पोस्ट करें –

उत्तर

3

कंसोल अनुप्रयोग में Yii->$app->user मौजूद नहीं है। इसलिए, आपको config\console.php में user घटक कॉन्फ़िगर करने की आवश्यकता है।

के रूप में की तरह,

config \ console.php

'components' => [ 
......... 
...... 
     'user' => [ 
      'class' => 'yii\web\User', 
      'identityClass' => 'app\models\User', 
      //'enableAutoLogin' => true, 
     ], 
     'session' => [ // for use session in console application 
      'class' => 'yii\web\Session' 
     ], 
....... 
] 

यह काम करता है या नहीं कोड के नीचे का उपयोग कर जांच करने के लिए।

public function actionIndex($message = 'hello world') 
{ 
    echo $message . "\n"; 
    $session = \Yii::$app->session->set('name', 'ASG'); 

    if(\Yii::$app->session) // to check session works or not 
     echo \Yii::$app->session->get('name')."\n"; 

    print_R(\Yii::$app->user); 
} 

अपनी समस्या के बारे में अधिक जानकारी: Link

नोट: वहाँ कंसोल में कोई सत्र है।

2

कारण सरल है। Guide आवेदन घटकों के बारे में कहते हैं (उपयोगकर्ता एक घटक है):

उपयोगकर्ता: उपयोगकर्ता प्रमाणीकरण जानकारी प्रतिनिधित्व करता है। यह घटक केवल वेब अनुप्रयोगों में उपलब्ध है कृपया अधिक जानकारी के लिए प्रमाणीकरण अनुभाग देखें।

तो Yii::$app->user यह कंसोल अनुप्रयोगों में उपलब्ध नहीं है।

परिणामस्वरूप आपको मॉडल कक्षाओं में इस घटक का उपयोग करने पर विचार करना होगा जो कंसोल अनुप्रयोगों द्वारा भी उपयोग किया जाता है।

अतिरिक्त नोट: यह आंतरिक रूप से BlameableBehavior द्वारा उपयोग किया जाता है, हालांकि, इससे कोई समस्या नहीं होती है क्योंकि कोई मॉडल सहेजा/बनाया गया है और कोई उपयोगकर्ता उपलब्ध नहीं है, तो उपयोगकर्ता शून्य हो जाएगा।

संबंधित मुद्दे