답변:
아래 코드를 사용하십시오.
protected $resultRedirect;
public function __construct(\Magento\Framework\Controller\ResultFactory $result){
$this->resultRedirect = $result;
}
public function execute()
{
$resultRedirect = $this->resultRedirect->create(ResultFactory::TYPE_REDIRECT);
$resultRedirect->setUrl($this->_redirect->getRefererUrl());
return $resultRedirect;
}
그것이 당신과 다른 사람들에게 도움이되기를 바랍니다.
public function execute()
{
$resultRedirect = $this->resultRedirectFactory->create();
$resultRedirect->setPath('routename/controllerpath/controllername');
return $resultRedirect;
}
커스텀 컨트롤러가 확장 할 \ Magento \ Framework \ App \ Action \ Action의 구문에서 선언 된 자동으로 $ this-> resultRedirectFactory를 construct에 선언 할 필요가 없습니다. 그렇지 않으면 컴파일 중에 오류가 발생합니다. resultRedirectFactory가 이미 선언되었습니다.
이 코드를 사용해보십시오 :
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;
}
}
$resultRedirect = $this->resultRedirectFactory->create();
$this->messageManager->addNotice(__("Login Reuqire For Edit Post. So Please <i class='fa fa-lock'></i> Login Now And Edit Your Post."));
$customerBeforeAuthUrl = $this->_url->getUrl('customer/account/login', array('referer' => $objecturl->getEncodedUrl($this->_url->getUrl(''))));
return $resultRedirect->setPath($customerBeforeAuthUrl);
이 코드를 사용해보십시오.
$this->_url->getUrl()
나에게 누락 된 세부 사항 이 있었습니다. 감사합니다!
이전 페이지로 리디렉션하려면 컨트롤러 에서이 코드를 사용해보십시오.
<?php
namespace Vendor\Module\Controller\Index;
class Index extends \Magento\Framework\App\Action\Action {
protected $_pageFactory;
/**
* @var \Magento\Framework\Session\SessionManagerInterface
*/
protected $_sessionManager;
public function __construct(
\Magento\Framework\App\Action\Context $context
) {
$this->resultFactory = $context->getResultFactory();
return parent::__construct($context);
}
public function execute()
{
$resultRedirect = $this->resultRedirectFactory->create();
$url = $this->_redirect->getRefererUrl();
$resultRedirect->setUrl($url);
return $resultRedirect;
}
}
특정 URL 벨로우즈 코드로 리디렉션하는 것이 좋습니다. 이것을 확인하십시오
public function execute()
{
$this->getResponse()->setRedirect($url);
}
여기에서 $ url은 전체 URL입니다. 예 : http://yoursite.com/customer/account/create/