yii

2012-12-05 10 views
26

में रीडायरेक्ट पर पैरामीटर को कैसे पास किया जाए, मैं अपने प्रोजेक्ट के लिए वाईआई फ्रेमवर्क का उपयोग कर रहा हूं;yii

मैं का उपयोग कर एक और नियंत्रक करने के लिए डेटाबेस में प्रविष्टि की सफलता के बाद पेज पुनः निर्देशित कर रहा हूँ

$ this-> अनुप्रेषित ($ this-> createUrl ('नियंत्रक/कार्रवाई'));

पुनर्निर्देशन के दौरान, यह संभव पारित करने के लिए कोई पैरामीटर बस में की तरह प्रस्तुत करना है

$ this-> प्रस्तुत करना ('selectRefiner', सरणी ('परम' => $ डेटा)

+15

मुझे समझ नहीं आता क्यों लोग प्रलेखन का उल्लेख नहीं करता है। और yiis दस्तावेज अन्य ढांचे के विपरीत शीर्ष पायदान है। बस इसे सरणी के रूप में भेजें जहां पहला तत्व नियंत्रक क्रिया है और बाकी महत्वपूर्ण मूल्य जोड़े हैं जिन्हें आप चर वैरिएबल के रूप में प्राप्त कर सकते हैं। – itachi

+4

मेरे लिए @itachi yii दस्तावेज बहुत स्पष्ट नहीं –

उत्तर

53

प्रयास करें:

$this->redirect(array('controller/action', 'param1'=>'value1', 'param2'=>'value2',...)) 

api yii 1, api yii 2

+०१२३५१६४१०६
+0

यह अच्छा होगा अगर आप यह समझा सकते हैं कि इस मूल्य को क्रिया में कैसे प्राप्त किया जाए? धन्यवाद। – Varundroid

+0

आप $ _REQUEST या $ _GET से कार्रवाई में मूल्य प्राप्त कर सकते हैं। – Rishabh

+0

... या यदि आप उन्हें फ़ंक्शन नामक पैरामीटर पर इनपुट करते हैं - जैसे कि इस सार्वजनिक फ़ंक्शन एक्शनएक्शन ($ param1, $ param2, ...) –

0

इस प्रयास करें:

Yii::$app->response->redirect(['site/dashboard','id' => 1, 'var1' => 'test']); 
+0

इस समस्या का उत्तर वर्तमान समस्या को ठीक करने में ओपी की मदद कैसे करें –

+0

असल में मैं किसी अन्य मॉडल पर रीडायरेक्ट करना चाहते हैं ... वर्तमान मॉडल के लिए रीडायरेक्ट पेज के लिए फ़ंक्शन ठीक प्रस्तुत करें, लेकिन मैं एक मॉडल को दूसरे पर रीडायरेक्ट करना चाहता हूं .. –

2

आप केवल Yii 2 redirect() में प्राप्त पैरामीटर पास कर सकते हैं। हालांकि, मेरे पास एक समान स्थिति थी और मैंने सत्र भंडारण का उपयोग कर इसे हल किया।

स्वाभाविक रूप से, आप वर्तमान सत्र को Yii::$app->session के माध्यम से एक्सेस कर सकते हैं।

public function actionOne() { 
    // Check if the Session is Open, and Open it if it isn't Open already 
    if (!Yii::$app->session->getIsActive()) { 
     Yii::$app->session->open(); 
    } 
    Yii::$app->session['someParameter'] = 'Bool/String/Array...'; 
    Yii::$app->session->close(); 
    $this->redirect(['site/two']); 
} 

public function actionTwo() { 
    if (isset(Yii::$app->session['someParameter']) { 
     $param = Yii::$app->session['someParameter']; 
    } else { 
     $param = null; 
    } 
    $this->render('two', [ 
     'param' => $param 
    ]); 
} 

तो अब आप two दृश्य के अंदर $param उपयोग करने में सक्षम होना चाहिए: यहाँ दो अलग-अलग नियंत्रक कार्यों में इसका उपयोग करने का एक उदाहरण है।

अधिक जानकारी के लिए, कृपया आधिकारिक कक्षा दस्तावेज देखें।

0

सभी पैरामीटर के साथ उसी क्रिया में रीडायरेक्ट करने के लिए जो पहले से ही मेरे लिए काम करता है।

$this->redirect($_PHP['SELF']);