2012-02-19 99 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