2012-02-19 68 views
8

嗨我想重载Mage_Customer_AccountController,以便我可以扩展createPostAction方法。对于我来说,我似乎无法做到这一点,它要么抛出一个404页面,这表明它不是该文件的正确路径,或者它默认为orignal。Magento:重写客户帐户控制器

<rewrite> 
     <company_modulename_account> 
      <from><![CDATA[#^/customer/account/#]]></from> 
      <to>/modulename/account</to> 
     </company_modulename_account> 
</rewrite> 

我的控制器就设在这里的本地/公司/模块名/控制器/ AccountController.php

+1

你绝对要重写吗?使用Event Observer监听customer_save_after事件并以分离,升级安全的方式执行所需步骤 – 2012-02-20 11:49:21

回答

24

相反,你可以为尝试:

... 
<frontend> 
     <routers> 
      <customer> 
       <args> 
        <modules> 
         <company_modulename before="Mage_Customer">Company_Modulename</company_modulename> 
        </modules> 
       </args> 
      </customer> 
     </routers> 
    </frontend> 
... 

,并创建一个控制器类:
应用程序/代码/ [codePool] /Company/Modulename/controllers/AccountController.php
用以下代码:

require_once 'Mage/Customer/controllers/AccountController.php'; 
class Company_Modulename_AccountController extends Mage_Customer_AccountController 
{ 
    public function createPostAction(){ 
     die('Overriden'); 
    } 
} 

这里有更多关于控制器压倒一切:
https://stackoverflow.com/a/7117076/887385

GOOD LUCK !!

+0

完美,谢谢! – jamessy 2012-02-19 18:49:14

+3

随着Magento 1.7只适用于我: Company_Modulename 2012-08-27 21:42:00

+0

@KevinHorst +1的评论。我在1.6.X C.E.调查什么是问题,并且会更新这个问题。 – Haijerome 2013-01-31 13:44:41