绕过控制器中的覆盖操作

时间:2017-11-02 01:30:29

标签: php ajax magento controller

我已经安装了一些新模块,ajaxcartpro和saveforlater。 Saveforlater在其控制器中调用addAction()动作。来自mage_checkout_controller的addAction被ajaxcartpro模块中的addAction覆盖。

我想知道是否有办法专门使用mage_checkout_controller中的addAction操作而不是ajaxcartpro中的操作。

Saveforlater控制器调用addAction():

FilePool files = AutoEcon.files();
final MFilePrices prices = files.getPrices();
final MFilePrices intangibles = files.getIntangibles();
final MFilePrices groups = files.getGroups();
sellPrices.forEach((price, value) -> {
    if (EconItem.fromString(price) != null) {
        setPriceAndBuyRate(prices, price, value);
    } else if (intangibles.getLabels().contains(price)) {
        setPriceAndBuyRate(intangibles, price, value);
    } else if (groups.getLabels().contains(price)) {
        setPriceAndBuyRate(groups, price, value);
    }
});

private void setPriceAndBuyRate(MFilePrices filePrices, Price price, Value value) {
    filePrices.setPrice(price, value.getExpression());
    filePrices.setBuyRate(price, value.getBuyRate());
}

有没有办法可以更改$ this-> addAction();从mage_checkout_controller专门调用addAction?

1 个答案:

答案 0 :(得分:2)

是。如果您的课程延长Mage_Checkout_CartController,则可以通过parent

进行调用
parent::addAction();

如果你上课没有直接扩展Mage_Checkout_CartController,但仍然是它的一个实例,那么你可以这样直接访问它:

Mage_Checkout_CartController::addAction();