Réponses:
Dans votre contrôleur, écrivez le code suivant:
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;
}
}
Ce code fonctionne pour moi, j'espère qu'il vous aidera aussi.
Cela pourrait également être une réponse valide sous une forme plus courte Magento 2.0.4
espace de noms Vendorname \ Modulename \ Controller \ Adminhtml \ Index; classe Fetch étend \ Magento \ Backend \ App \ Action { fonction publique execute () { // TODO: implémente la méthode execute (). $ this -> _ redirect ($ this -> _ redirect-> getRefererUrl ()); } }
execute
méthode devrait renvoyer un Magento\Framework\Controller\ResultInterface
ou un Magento\Framework\App\ResponseInterface
. Heureusement, la _redirect
méthode fait l'un de ceux-ci, c'est donc conseillé:return $this->_redirect($this->_redirect->getRefererUrl());
Veuillez utiliser ce code dans votre classe de contrôleur:
$resultRedirect = $this->resultRedirectFactory->create();
$resultRedirect->setRefererUrl();
return $resultRedirect;
Ici, resultRedirectFactory est une variable de classe qui peut être héritée dans votre classe de ses parents.
Pour vérifier si l'URL de référence est définie ou non, veuillez d'abord imprimer la variable $ _SERVER. Ce code fonctionne pour moi.
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;
}