如何重定向到上一页magento 2?


14

如何从我在magento 2中的自定义操作重定向到上一页

Answers:


42

在您的控制器中编写以下代码:

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;
    }
}

这段代码对我有用,希望对您也有帮助。


他们是否需要与我的模块@ ND17中的操作相关的xml文件
Learing_Coder

@PranayK首先告诉我您的问题是,如果您的操作不用于任何页面渲染,而无需添加XML文件
ND17,18年

如果假设我需要返回时进入列表页面,则返回首页时,refererurl具有列表页面URL @ ND17
Learing_Coder

当您需要返回任何动作时,您会执行什么操作?例如点击某物?
ND17

是的,单击后有“返回”链接,我需要返回主页,它仅停留在列表页面中。@ ND17
Learing_Coder

15

这也可能是简短形式的Magento 2.0.4的有效答案。

命名空间Vendorname \ Modulename \ Controller \ Adminhtml \ Index;
类Fetch扩展了\ Magento \ Backend \ App \ Action
{
    公共函数execute()
    {
        // TODO:实现execute()方法。
        $ this-> _ redirect($ this-> _ redirect-> getRefererUrl());
    }
}

execute方法应返回a Magento\Framework\Controller\ResultInterface或a Magento\Framework\App\ResponseInterface。幸运的是,该_redirect方法可以执行以下操作之一,因此建议这样做:return $this->_redirect($this->_redirect->getRefererUrl());
Clockworkgeek,2018年

后端很酷。与Magento 2.2.6一起使用时效果很棒。
jaydip sinh Parmar

这是重定向到上一页的正确方法。谢谢
Avesh Naik

2

请在您的控制器类中使用以下代码:

$resultRedirect = $this->resultRedirectFactory->create();
$resultRedirect->setRefererUrl();
return $resultRedirect;

这里resultRedirectFactory是一个类变量,可以在您的类中从那里的父类继承。

要检查是否设置了引用URL,请首先打印$ _SERVER变量。该代码对我有用。


0
public function execute(){
    $resultRedirect = $this->resultRedirectFactory->create();
    try{
        $this->messageManager->addSuccess(__('Redirection Sucessful.'));
    }catch (\Exception $e) {
        $this->messageManager->addError($e->getMessage());            
    }
    $resultRedirect->setUrl($this->_redirect->getRefererUrl());
    return $resultRedirect;
}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.