2011-08-03 117 views

回答

7

正如你可能知道,你可以使用下面的XML(在config.xml文件中)易控的核心控制器:

<frontend> 
    <routers> 
     <core_module> 
      <args> 
       <modules> 
        <YouPackage_YourModule before="Mage_CoreModule">YouPackage_YourModule_YourController</YouPackage_YourModule> 
       </modules> 
      </args> 
     </core_module> 
    </routers> 
</frontend> 

您可以覆蓋核心控制器儘可能多的時間,只要你想,但你必須確保這個控制器中的操作是不同的。如果您想覆蓋相同的操作,則必須使用某些組合操作來解決衝突。沒有辦法從不同的控制器調用相同的動作。

+0

嗨azakolyukin,非常感謝快速回復。因爲我已經在moduleA中覆蓋了一個核心控制器,並且現在我試圖在moduleB中覆蓋同一個控制器,在這兩個模塊中我也採取了不同的操作,但magento只調用我在moduleA中寫入的操作,而不是moduleB中的操作。所以我如何克服這個問題,以便我可以使用這兩個模塊的動作(在兩個模塊中寫入覆蓋控制器的動作)。謝謝 – Rupali

+4

在模塊B中,你應該在'YouPackage_YourModuleA> YouPackage_YourModule_YourController之前寫' Zyava

+0

答案是不完整的,只有當你的第二個模塊/重載(B)引入了一個新的方法,否則第一個模塊/重載(A)將被初始化。請參閱@Zyava解決此類問題的答案(您的第二個模塊也需要在此方案中擴展第一個模塊) – WonderLand