क्वेरी स्ट्रिंग के साथ URL पर पुनर्निर्देशित करें


11

मेरे मॉड्यूल में, मेरी स्क्रिप्ट के निष्पादन के बाद, मुझे URL में क्वेरी स्ट्रिंग वाले पृष्ठ पर पुनर्निर्देशित करना होगा।

यही सब कुछ मेरे पास है:

$redirectUrl = 'http://magento.local/en_en/shop/index';
$redirectArgs = array('test' => '1');
$this->_redirect($redirectUrl, $redirectArgs);

मैंने भी कोशिश की:

Mage::app()->getFrontController()->getResponse()->setRedirect($redirectUrl, $redirectArgs)->sendResponse();

दोनों विधियाँ एक त्रुटि फेंकती हैं: आपके अनुरोध को संसाधित करने में त्रुटि हुई है

मुझे उम्मीद है कि इसे पुनर्निर्देशित किया जाएगा http://magento.local/en_en/shop/index?test=1

क्या किसी को पता है कि मैं इसे कैसे हासिल कर सकता हूं?

संपादित करें:

सुझाव के अनुसार, मैंने कोशिश की है:

$redirectUrl = 'http://magento.local/en_en/shop/index?test=1';
Mage::app()->getResponse()->setRedirect($redirectUrl);

कोई त्रुटि नहीं, लेकिन कुछ भी नहीं होता है। मैं किसी कंट्रोलर में नहीं हूं।

2 संपादित करें:

मैंने प्रयोग करके समाप्त किया:

$redirectUrl = 'http://magento.local/en_en/shop/index?test=1';
Mage::app()->getResponse()->setRedirect($redirectUrl)->sendResponse();

यह उम्मीद के मुताबिक काम करता है! धन्यवाद।

जवाबों:


9

सिर्फ इस तरह url का निर्माण क्यों नहीं?

 $redirectUrl = 'http://magento.local/en_en/shop/index?test=1';

का दूसरा पैरामीटर setRedirectरीडायरेक्ट कोड (301, 302) के लिए है।

यदि आप url आंतरिक का निर्माण करना चाहते हैं तो आप यह कोशिश कर सकते हैं:

$redirectUrl = Mage::getUrl('module/controller/action', array('_query'=>'test=1'));

और तब? $this->_redirect($redirectUrl);?
MrUpsidown

@MrUpsidown। _redirectयदि आप एक नियंत्रक में हैं। आप कहीं और कर रहे हैं:Mage::app()->getResponse()->setRedirect($redirectUrl);
मेरियस

कोई बात नहीं। ->sendResponse()अंत में जोड़कर काम किया!
मृदुपिडाउन

@MrUpsidown। माफ़ करना। मैं के बारे में भूलsendResponse
मेरियस

2

ऐसा करने का बेहतर तरीका इस तरह है।

Mage_Core_Controller_Varien_Action :: _ redirect ('urlpost / index / response', array ('_ safe' => true, '_ query' => 'string1 = 417'));

0

यदि आप क्वेरी पैरामीटर के साथ किसी अन्य URL पर पुनर्निर्देशित करना चाहते हैं, तो आप ऐसा कर सकते हैं:

$redirectUrl = 'http://magento.local/en_en/shop/index';
$query_parameters = array(
                '_query'=> array(
                    'test' => '1',
                    'test'=>'2'
                )
            );

$this->_redirect($redirectUrl, $query_parameters);

यह आपको इस पर पुनर्निर्देशित करेगा: http: //magento.local/en_en/shop/index? Test = 1 = परीक्षण = 2


0

यदि आप Google से यहां समाप्त हो गए हैं, तो एक नियंत्रक का उपयोग कर रहे हैं और उन अन्य तर्कों को पुनर्निर्देशित करना चाहते हैं जिन्हें आप उपयोग कर सकते हैं:

$this->_redirect('module/controller/action', $this->getRequest()->getParams());

कहाँ module, controllerऔर इसे संरक्षित actionकिया जा सकता *है यह मूल्य है। एक ही नियंत्रक में एक और कार्रवाई:

$this->_redirect('*/*/anotherAction', $this->getRequest()->getParams());

एक ही कार्रवाई नाम, भाई नियंत्रक:

$this->_redirect('*/sibling/*', $this->getRequest()->getParams());

और इसी तरह...

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.