Câu trả lời:
Trong Bộ điều khiển của bạn viết mã sau đây:
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;
}
}
Mã này làm việc cho tôi. Hy vọng nó cũng sẽ giúp bạn.
Đây cũng có thể là một câu trả lời hợp lệ ở dạng ngắn hơn Magento 2.0.4
không gian tên Vendorname \ Modulename \ Controller \ adminhtml \ Index; lớp Tìm nạp kéo dài \ Magento \ Backend \ App \ Action { thực thi chức năng công cộng () { // TODO: Thực hiện phương thức exec (). $ this -> _ redirect ($ this -> _ redirect-> getRefererUrl ()); } }
execute
phương pháp dự kiến sẽ trở lại hoặc là một Magento\Framework\Controller\ResultInterface
hoặc một Magento\Framework\App\ResponseInterface
. May mắn thay, _redirect
phương pháp này thực hiện một trong những điều đó nên được khuyến khích:return $this->_redirect($this->_redirect->getRefererUrl());
Vui lòng sử dụng mã này trong lớp trình điều khiển của bạn:
$resultRedirect = $this->resultRedirectFactory->create();
$resultRedirect->setRefererUrl();
return $resultRedirect;
Ở đây resultRedirectFactory là một biến lớp có thể được kế thừa trong lớp của bạn từ đó cha mẹ.
Để kiểm tra xem URL giới thiệu có được đặt hay không, vui lòng in biến $ _SERVER trước. Mã này đang làm việc cho tôi.
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;
}