2011-12-07 22 views
7

मैं वाईआई फ्रेमवर्क के लिए नौसिखिया हूं। वाईआई में जब आप डिफ़ॉल्ट रूप से लॉगिन करते हैं तो यह इंडेक्स पेज पर रीडायरेक्ट करता है। मैं चाहता हूं कि जब मैं वाईआई में लॉगिन करूंगा तो पृष्ठ किसी दूसरे पृष्ठ पर रीडायरेक्ट करेगा, इंडेक्स पेज नहीं। तो क्या कोई इस में मेरी मदद कर सकता है। कोई मदद या सुझाव अत्यधिक सराहनीय होंगे।Yii ढांचे में लॉगिन के बाद रीडायरेक्ट पेज

[संपादित करें]

कैसे रीडायरेक्ट जब मैं के रूप में प्रवेश पृष्ठ प्रोफाइल पेज की ओर निर्देशित कर दिये जाने के बाद उपयोगकर्ता मॉड्यूल का उपयोग करेगा काम करेंगे?

+1

आप देखना चाहें [इस लिंक] (http://www.yiiframework.com/doc/api/1.1/CWebUser#returnUrl-detail) – lastland

उत्तर

13

आप (और वास्तव में, यदि कोई पुनर्निर्देशन होने जा रहा है) कर सकते हैं तो यूआरएल को अपने नियंत्रक के actionLogin विधि के अंदर रीडायरेक्ट करने के लिए निर्दिष्ट करें। एक सफल प्रवेश के बाद आप इस कोड की तरह कुछ देखेंगे:

$this->redirect(Yii::app()->user->returnUrl); 

किसी भी पैरामीटर कि CController::redirect विधि का समर्थन करता है के लिए बदलें इस, और जहां उपयोगकर्ता प्रवेश के बाद पुनः निर्देशित किया जाता आप नियंत्रित कर सकते हैं।

एक तरफ के रूप में, Yii::app()->user->returnUrl का उपयोग करके रीडायरेक्ट पेज उपयोगकर्ता को उस URL पर वापस लौटने में सक्षम बनाता है जिसे वे लॉगिन पृष्ठ पर रीडायरेक्ट करने से पहले विज़िट करना चाहते थे।

6

प्रवेश के बाद एक पृष्ठ के लिए उपयोगकर्ता अनुप्रेषित, पेज अपने उपयोगकर्ता के बाद s/वह में लॉग लिए निर्देशित किया जाएगा के लिए जीआईआई में एक नया नियंत्रक बनाने के लिए। मैं यहाँ इस नियंत्रक 'ऐप्लिकेशन' फोन करता हूँ। जीआई स्वचालित रूप से आपके लिए कुछ फाइलें बनाएगा- एक /protected/models/AppController.php

AppController.php में, आपके पास actionIndex नामक एक डिफ़ॉल्ट सार्वजनिक फ़ंक्शन (विधि) होगा। इस डिफ़ॉल्ट विधि का उद्देश्य /protected/views/app/index.php फ़ाइल को कॉल (रेंडर) करना है (आपके लिए जीआई द्वारा भी बनाया गया है)। index.php वह फ़ाइल है जो आपके उपयोगकर्ता लॉग इन करने के बाद देखेंगे। यही वह फ़ाइल है जिसे आप अपना ऐप बनाने के लिए संशोधित करना चाहते हैं। वापस SiteController.php में जाओ और actionLogin() विधि

if(isset($_POST['LoginForm'])) 
      { 
        $model->attributes=$_POST['LoginForm']; 
        // validate user input and redirect to the previous page if valid 
        if($model->validate() && $model->login()) 
        // since my controller is /protected/controllers/AppController.php 
          $this->redirect(array('app/index')); 
      } 

यह आपको मिल शुरू कर दिया जाना चाहिए में रिडायरेक्ट() के तर्क बदल जाते हैं। (यह अनिवार्य रूप से the yiiframework site पर चर्चा पर मेरी पोस्ट है)

2

उपयोगकर्ता मॉड्यूल का उपयोग करके लॉग इन करने के बाद आप साइट/अनुक्रमणिका पर रीडायरेक्ट कर सकते हैं।

'modules'=>array(
    // user extension 
    'user'=>array(
       ........... 
     # page after login 
     //'returnUrl' => array('/user/profile'), 
     'returnUrl' => array('/site/index'), 
       ........ 
    ), 
), 
0
$this->redirect($this->createUrl('yourcontroller/youraction')); 
संबंधित मुद्दे