Jawaban:
Di Controller Anda, tulis kode berikut:
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;
}
}
Kode ini berfungsi untuk saya. Semoga dapat membantu Anda juga.
Ini juga bisa menjadi jawaban yang valid dalam bentuk yang lebih pendek Magento 2.0.4
namespace Vendorname \ Modulename \ Controller \ Adminhtml \ Index;
Ambil kelas diperluas \ Magento \ Backend \ App \ Action
{
mengeksekusi fungsi publik ()
{
// TODO: Terapkan metode execute ().
$ this -> _ redirect ($ this -> _ redirect-> getRefererUrl ());
}
}
executeMetode diharapkan untuk kembali baik Magento\Framework\Controller\ResultInterfaceatau Magento\Framework\App\ResponseInterface. Untungnya _redirectmetode ini melakukan salah satu dari itu, jadi ini disarankan:return $this->_redirect($this->_redirect->getRefererUrl());
Silakan gunakan kode ini di kelas controller Anda:
$resultRedirect = $this->resultRedirectFactory->create();
$resultRedirect->setRefererUrl();
return $resultRedirect;
Di sini resultRedirectFactory adalah variabel kelas yang dapat diwarisi di kelas Anda dari orang tua di sana.
Untuk memeriksa apakah URL rujukan disetel atau tidak, harap cetak variabel $ _SERVER terlebih dahulu. Kode ini berfungsi untuk saya.
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;
}