绕过控制器中的重写操作
Bypassing overriding actions in controllers
我安装了几个新模块,ajaxcartpro 和 saveforlater。 Saveforlater 在其控制器中调用 addAction() 操作。来自 mage_checkout_controller 的 addAction 正在被 ajaxcartpro 模块中的 addAction 覆盖。
我想知道是否有一种方法可以专门使用来自 mage_checkout_controller 的 addAction 操作,而不是来自 ajaxcartpro 的操作。
Saveforlater 控制器调用 addAction():
public function moveAction(){
$saveforlater_item_id = Mage::app()->getRequest()->getParam('item');
if( $saveforlater_item_id ){
$saveforlater_item = Mage::getModel('saveforlater/item')->load( $saveforlater_item_id );
$buy_request = unserialize( $saveforlater_item->getBuyRequest() );
$params = $this->getRequest()->getParams();
$this->getRequest()->setParams( $buy_request );
$this->addAction();
$saveforlater_item->delete();
}
}
有什么方法可以更改 $this->addAction(); 行吗?从 mage_checkout_controller?
专门调用 addAction
是的。如果您的 class 扩展了 Mage_Checkout_CartController
,您可以通过 parent
:
调用它
parent::addAction();
如果你class没有直接扩展Mage_Checkout_CartController
,但仍然是它的一个实例,那么你可以这样直接访问它:
Mage_Checkout_CartController::addAction();
我安装了几个新模块,ajaxcartpro 和 saveforlater。 Saveforlater 在其控制器中调用 addAction() 操作。来自 mage_checkout_controller 的 addAction 正在被 ajaxcartpro 模块中的 addAction 覆盖。
我想知道是否有一种方法可以专门使用来自 mage_checkout_controller 的 addAction 操作,而不是来自 ajaxcartpro 的操作。
Saveforlater 控制器调用 addAction():
public function moveAction(){
$saveforlater_item_id = Mage::app()->getRequest()->getParam('item');
if( $saveforlater_item_id ){
$saveforlater_item = Mage::getModel('saveforlater/item')->load( $saveforlater_item_id );
$buy_request = unserialize( $saveforlater_item->getBuyRequest() );
$params = $this->getRequest()->getParams();
$this->getRequest()->setParams( $buy_request );
$this->addAction();
$saveforlater_item->delete();
}
}
有什么方法可以更改 $this->addAction(); 行吗?从 mage_checkout_controller?
专门调用 addAction是的。如果您的 class 扩展了 Mage_Checkout_CartController
,您可以通过 parent
:
parent::addAction();
如果你class没有直接扩展Mage_Checkout_CartController
,但仍然是它的一个实例,那么你可以这样直接访问它:
Mage_Checkout_CartController::addAction();