2017-11-02 9 views
0

私はMagentoをかなり新しくしています。Magento - コントローラーのオーバーライド動作を迂回

新しいモジュールajaxcartproとsaveforlaterをインストールしました。 Saveforlaterはコントローラ内でaddAction()アクションを呼び出します。 mage_checkout_controllerのaddActionは、ajaxcartproモジュールのaddActionによって上書きされています。

ajaxcartproのものではなく、mage_checkout_controllerのaddActionアクションを具体的に使用する方法があるのだろうかと思っていました。 addAction()を呼び出す

Saveforlaterコントローラ:

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を呼び出すには?

ありがとうございます!

答えて

2

はい。あなたのクラスがMage_Checkout_CartControllerを拡張する場合は、parentを経由して、それを呼び出すことができます。

parent::addAction(); 

あなたのクラスが直接Mage_Checkout_CartControllerを拡張し、まだそれのインスタンスであるしない場合は、あなたが直接この方法でアクセスすることができます

Mage_Checkout_CartController::addAction(); 
+0

ありがとうジョー、どうすればこれを組み合わせて$ thisを使うのですか?働いていないようです。 –

+0

'$ this'を使う必要はありません。 '$ this-> addAction()'を私の答えの例の1つに置き換えてください。 – Joe

関連する問題