Magento 2 में पुनर्निर्देशक नियंत्रक


15

मैंने ग्राहक डैशबोर्ड में एक नया कस्टम टैब जोड़ा। यदि मेरे कस्टम फॉर्म को सफलतापूर्वक निष्पादित किया जाता है तो मुझे ग्राहक मुख्य पृष्ठ पर पुनर्निर्देशित करना होगा customer/account। मैं यह कैसे कर सकता हूँ?

जवाबों:



21

नीचे दिए गए कोड का उपयोग करें:

protected $resultRedirect;

public function __construct(\Magento\Framework\Controller\ResultFactory $result){
   $this->resultRedirect = $result;
}

public function execute()
{
    $resultRedirect = $this->resultRedirect->create(ResultFactory::TYPE_REDIRECT);
    $resultRedirect->setUrl($this->_redirect->getRefererUrl());

    return $resultRedirect;         
 }  

आशा है कि यह आपके लिए और दूसरों के लिए उपयोगी होगा।


1
तुम मेरे दोस्त अब मेरे भगवान हो, मैं तुमसे हर रात प्रार्थना करता हूँ! धन्यवाद! समय की ढेर मुझे बचा लिया।
OZZIE

14
public function execute()
{
$resultRedirect = $this->resultRedirectFactory->create();
$resultRedirect->setPath('routename/controllerpath/controllername');
return $resultRedirect;
}

इसके रूप में $ घोषित करने की कोई आवश्यकता नहीं है- resultRedirectFactory निर्माण में इसके ऑटो ने \ Magento \ फ्रेमवर्क \ App \ Action \ Action के निर्माण में घोषित किया, जिसके लिए आपके कस्टम नियंत्रक को विस्तार करना चाहिए। अन्यथा आपको संकलन के दौरान त्रुटि मिलेगी: resultRedirectFactory पहले से ही घोषित है


2

इस कोड को आज़माएं:

 namespace Company\Module\Controller\Index;
    use Magento\Framework\Controller\ResultFactory; 

    class Actionname name extends \Magento\Framework\App\Action\Action
    {      
        public function execute()
        {
            $resultRedirect = $this->resultFactory->create(ResultFactory::TYPE_REDIRECT);

            // Your code

            $resultRedirect->setUrl($this->_redirect->getRefererUrl());
            return $resultRedirect;
        }
    }

2
$resultRedirect = $this->resultRedirectFactory->create();
$this->messageManager->addNotice(__("Login Reuqire For Edit Post. So Please <i class='fa fa-lock'></i> Login Now And Edit Your Post."));
$customerBeforeAuthUrl = $this->_url->getUrl('customer/account/login', array('referer' => $objecturl->getEncodedUrl($this->_url->getUrl(''))));
return $resultRedirect->setPath($customerBeforeAuthUrl);

इस कोड की कोशिश करो, मुझे आशा है कि आप इसका उपयोग कर सकते हैं :)


1
$this->_url->getUrl()मेरे लिए लापता विवरण का उपयोग करना था, धन्यवाद!
cjohansson

0

इस कोड को पिछले पृष्ठ पर पुनर्निर्देशित करने के लिए नियंत्रक की कोशिश करें:

<?php
namespace Vendor\Module\Controller\Index;

class Index extends \Magento\Framework\App\Action\Action {
    protected $_pageFactory;

    /**
     * @var \Magento\Framework\Session\SessionManagerInterface
     */
    protected $_sessionManager;

    public function __construct(
        \Magento\Framework\App\Action\Context $context      

    ) {
        $this->resultFactory = $context->getResultFactory();

        return parent::__construct($context);
    }

    public function execute()
    {


        $resultRedirect = $this->resultRedirectFactory->create();
        $url = $this->_redirect->getRefererUrl();

        $resultRedirect->setUrl($url);
        return $resultRedirect;
    }
}

0

मेरे लिए विशिष्ट URL bellow कोड पर रीडायरेक्ट करना ठीक रहता है। कृपया इसे देखें

public function execute()
{
    $this->getResponse()->setRedirect($url);
}

यहां, $ url पूर्ण url है। उदा। http://yoursite.com/customer/account/create/

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