วิธีเปลี่ยนเส้นทางไปยังหน้าก่อนหน้าจากการกระทำที่กำหนดเองของฉันใน magento 2
วิธีเปลี่ยนเส้นทางไปยังหน้าก่อนหน้าจากการกระทำที่กำหนดเองของฉันใน magento 2
คำตอบ:
ในคอนโทรลเลอร์ของคุณเขียนโค้ดต่อไปนี้:
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แบบสั้น
เนมสเปซ Vendorname \ Modulename \ Controller \ Adminhtml \ ดัชนี; การดึงข้อมูลระดับขยาย \ Magento \ Backend \ App \ Action { ฟังก์ชั่นสาธารณะรัน () { // TODO: ใช้เมธอด execute () $ this -> _ เปลี่ยนเส้นทาง ($ นี้ -> _ redirect-> getRefererUrl ()); } }
execute
วิธีการที่คาดว่าจะกลับมาอย่างใดอย่างหนึ่งหรือMagento\Framework\Controller\ResultInterface
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;
}