Magento:覆盖客户账户控制器

jam*_*ssy 8 magento

嗨,我正在尝试覆盖Mage_Customer_AccountController,以便我可以扩展createPostAction方法.对于我的生活我似乎无法做到这一点,它要么抛出404页面,这表明它不是文件的正确路径或默认为orignal.

<rewrite>
       <company_modulename_account>
           <from><![CDATA[#^/customer/account/#]]></from>
           <to>/modulename/account</to>
       </company_modulename_account>
</rewrite>
Run Code Online (Sandbox Code Playgroud)

我的控制器位于local/company/modulename/controllers/AccountController.php

Mag*_*cho 25

相反,你可以尝试:

...   
 <frontend>
        <routers>
            <customer>
                <args>
                    <modules>
                        <company_modulename before="Mage_Customer">Company_Modulename</company_modulename>
                    </modules>
                </args>
            </customer>
        </routers>
    </frontend>
...
Run Code Online (Sandbox Code Playgroud)

并使用以下代码创建一个控制器类:
app/code/[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');
    } 
}
Run Code Online (Sandbox Code Playgroud)

以下是有关控制器覆盖的更多信息:https:
//stackoverflow.com/a/7117076/887385

祝好运!!

  • 使用Magento 1.7只适用于我:<company_modulename before ="Mage_Customer_AccountController"> Company_Modulename </ company_modulename> (3认同)