Відповіді:
У своєму контролері напишіть наступний код:
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;
}
}
Цей код працює для мене. Сподіваюся, він теж допоможе вам.
Це також може бути вірною відповіддю у скороченому вигляді Magento 2.0.4
простір імен ім'я постачальника \ ім'я модуля \ контролер \ адміністратор \ індекс;
клас Fetch розширюється \ Magento \ Backend \ App \ Action
{
виконання публічної функції ()
{
// 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());
Будь ласка, використовуйте цей код у вашому класі контролера:
$resultRedirect = $this->resultRedirectFactory->create();
$resultRedirect->setRefererUrl();
return $resultRedirect;
Тут resultRedirectFactory є змінною класу, яка може бути успадкована у вашому класі від батьків.
Щоб перевірити, встановлена чи ні URL-адреса перенаправлення, спочатку надрукуйте змінну $ _SERVER. Цей код працює для мене.
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;
}