gpt4 book ai didi

php - Magento Enterprise Controller 覆盖

转载 作者:行者123 更新时间:2023-12-04 06:08:59 24 4
gpt4 key购买 nike

我正在尝试覆盖 Enterprise/CatalogEvent/controllers/Adminhtml/Catalog/EventController.php。

问题是config.xml。如何遵循 Magento 的命名约定。
以下是config.xml文件

<admin>
<routers>
<adminhtml>
<args>
<modules>
<Mynamespace_catalogevent before="Enterprise_CatalogEvent">Mynamespace_CatalogEvent_Adminhtml</Mynamespace_catalogevent>
</modules>
</args>
</adminhtml>
</routers>
</admin>

最佳答案

根据上面看似正确的 xpath 和属性,您需要在 Mynamespace/CatalogEvent/controllers/Adminhtml/下有一个 EventController.php 文件。

这种重写风格是 Magento 中最新的(弃用以前的方法)。实际上,您在 Enterprise 目录之前注入(inject)了一个目录,并且路由将从那里开始。由于自动加载器无法使用 Controller 类定义,因此通过获取模块参数并将其转换为目录来包含它们。在核心 Magento 路由中, Controller 文件是通过 Mage_Core_Controller_Varien_Router_Standard::getControllerFileName() 确定的。和 Mage_Core_Model_Config::getModuleDir() (除其他外)。它的评估方式意味着在模块中的两个目录级别之后(例如 Mynamespace/CatalogEvent),下一个目录将是“ Controller ”。

确保您的 EventController 类定义根据上述定位,您的操作与您正在覆盖的操作相匹配,并且您的类名与您的路径相匹配,您就可以开始了。

困难的是,如果您的结构和语法有任何“不正确”(保存不正确的类名),路由器最终将解析为企业操作 Controller 。

关于php - Magento Enterprise Controller 覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8007210/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com