मैंने ग्राहक डैशबोर्ड में एक नया कस्टम टैब जोड़ा। यदि मेरे कस्टम फॉर्म को सफलतापूर्वक निष्पादित किया जाता है तो मुझे ग्राहक मुख्य पृष्ठ पर पुनर्निर्देशित करना होगा customer/account
। मैं यह कैसे कर सकता हूँ?
मैंने ग्राहक डैशबोर्ड में एक नया कस्टम टैब जोड़ा। यदि मेरे कस्टम फॉर्म को सफलतापूर्वक निष्पादित किया जाता है तो मुझे ग्राहक मुख्य पृष्ठ पर पुनर्निर्देशित करना होगा customer/account
। मैं यह कैसे कर सकता हूँ?
जवाबों:
आप सीधे एक्शन कंट्रोलर में नीचे दिए गए कोड का उपयोग कर सकते हैं
$this->_redirect('customer/account/');
नीचे दिए गए कोड का उपयोग करें:
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;
}
आशा है कि यह आपके लिए और दूसरों के लिए उपयोगी होगा।
public function execute()
{
$resultRedirect = $this->resultRedirectFactory->create();
$resultRedirect->setPath('routename/controllerpath/controllername');
return $resultRedirect;
}
इसके रूप में $ घोषित करने की कोई आवश्यकता नहीं है- resultRedirectFactory निर्माण में इसके ऑटो ने \ Magento \ फ्रेमवर्क \ App \ Action \ Action के निर्माण में घोषित किया, जिसके लिए आपके कस्टम नियंत्रक को विस्तार करना चाहिए। अन्यथा आपको संकलन के दौरान त्रुटि मिलेगी: resultRedirectFactory पहले से ही घोषित है
इस कोड को आज़माएं:
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;
}
}
$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);
इस कोड की कोशिश करो, मुझे आशा है कि आप इसका उपयोग कर सकते हैं :)
$this->_url->getUrl()
मेरे लिए लापता विवरण का उपयोग करना था, धन्यवाद!
इस कोड को पिछले पृष्ठ पर पुनर्निर्देशित करने के लिए नियंत्रक की कोशिश करें:
<?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;
}
}
मेरे लिए विशिष्ट URL bellow कोड पर रीडायरेक्ट करना ठीक रहता है। कृपया इसे देखें
public function execute()
{
$this->getResponse()->setRedirect($url);
}
यहां, $ url पूर्ण url है। उदा। http://yoursite.com/customer/account/create/