【问题标题】:Magento config XML for adding a controller action to a core admin controllerMagento config XML 用于将控制器操作添加到核心管理控制器
【发布时间】:2010-04-29 21:10:06
【问题描述】:

我正在尝试通过在本地模块中扩展核心控制器来向核心控制器添加自定义操作。下面我有位于 magento1_3_2_2/app/code/local/MyCompany/MyModule/controllers/Catalog/ProductController.php 中的类定义

class MyCompany_MyModule_Catalog_ProductController extends Mage_Adminhtml_Catalog_ProductController                                                                                                                                                                                
{                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                
  public function massAttributeSetAction(){
    ...
  }
}

这是我的配置文件 magento1_3_2_2/app/code/local/MyCompany/MyModule/etc/config.xml:

...
<global>
    <rewrite>                                                                                                                                                                                                                                                             
        <mycompany_mymodule_catalog_product>                                                                                                                                                                                                                                   
            <from><![CDATA[#^/catalog_product/massAttributeSet/#]]></from>                                                                                                                                                                                              
            <to>/mymodule/catalog_product/massAttributeSet/</to>                                                                                                                                                                                                           
        </mycompany_mymodule_catalog_product>                                                                                                                                                                                                                                  
    </rewrite>

    <admin>                                                                                                                                                                                                                                                                   
        <routers>                                                                                                                                                                                                                                                               
            <MyCompany_MyModule>                                                                                                                                                                                                                                                       
                <use>admin</use>                                                                                                                                                                                                                                                    
                <args>                                                                                                                                                                                                                                                              
                    <module>MyCompany_MyModule</module>                                                                                                                                                                                                                                    
                    <frontName>MyModule</frontName>                                                                                                                                                                                                                                      
                </args>                                                                                                                                                                                                                                                             
            </MyCompany_MyModule>                                                                                                                                                                                                                                                      
        </routers>                                                                                                                                                                                                                                                              
    </admin>
</global>
...

但是,https://example.com/index.php/admin/catalog_product/massAttributeSet/ 只会生成一个管理员 404 页面。我知道该模块处于活动状态 - 其他代码执行良好。我觉得这只是我的 xml 语法的问题。我要这样写吗?我很犹豫,因为我实际上并没有重写控制器方法......我完全添加了一个。然而它确实有意义,原来的管理 url 不会响应那个动作名称,它需要被重定向。

我正在使用 Magento 1.3.2.2

感谢您的指导。

【问题讨论】:

    标签: magento


    【解决方案1】:

    我目前无法访问我的 Magento 安装,但弹出两件事

    首先,你的写规则

    [#^/catalog_product/massAttributeSet/]
    

    是说“匹配任何以 /catalog_product 开头的 URL”,而您的问题表明您想要匹配以 /admin/catalog_product 开头的 URL。

    其次,如果您使用的是 1.3+,请考虑跳过 URL 重写方法并改用 a "real" controller override

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-10
      • 1970-01-01
      相关资源
      最近更新 更多