Odpowiedzi:
W swoim kontrolerze wpisz następujący kod:
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;
}
}
Ten kod działa dla mnie i mam nadzieję, że Ci pomoże.
Może to być także poprawna odpowiedź w krótszej formie Magento 2.0.4
przestrzeń nazw Vendorname \ Modulename \ Controller \ Adminhtml \ Index;
klasa Fetch rozszerza \ Magento \ Backend \ App \ Action
{
funkcja publiczna execute ()
{
// TODO: Implementuj metodę execute ().
$ this -> _ redirect ($ this -> _ redirect-> getRefererUrl ());
}
}
executeOczekuje się, aby zwrócić albo Magento\Framework\Controller\ResultInterfacelub grupę Magento\Framework\App\ResponseInterface. Na szczęście _redirectmetoda wykonuje jedną z nich, więc jest to wskazane:return $this->_redirect($this->_redirect->getRefererUrl());
Proszę użyć tego kodu w klasie kontrolera:
$resultRedirect = $this->resultRedirectFactory->create();
$resultRedirect->setRefererUrl();
return $resultRedirect;
Tutaj resultRedirectFactory jest zmienną klasową, którą można dziedziczyć w klasie od rodziców.
Aby sprawdzić, czy ustawiony jest adres URL polecenia, najpierw wydrukuj zmienną $ _SERVER. Ten kod działa dla mnie.
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;
}