我需要更改editPostAction,因此我创建了自己的AccountController并复制了editPostAction。但突然间客户注册不再有效,我收到很多错误,某些地址字段不能为空(尽管已填写)。我的config.xml如下所示:
<frontend>
<routers>
<customer>
<args>
<modules>
<my_ext before="Mage_Customer_AccountController">My_Ext</my_ext >
<!--my_ext before="Mage_Customer_AddressController">My_Ext</my_ext -->
</modules>
</args>
</customer>
</routers>
</frontend>
AccountController看起来像这样:
require_once Mage::getModuleDir('controllers','Mage_Customer').DS."AccountController.php";
class My_Ext_AccountController extends Mage_Customer_AccountController{
public function editPostAction(){
//..copied code from Mage_Customer_AccountController
}
}
如果我从config.xml中删除该部分,则客户注册将再次起作用。我不明白为什么会发生这种情况,有没有人遇到过这个问题? editPostAction甚至不应该干扰客户注册,对吧?由于我没有使用其他AccountController方法,我不明白这一点。
提前致谢!
答案 0 :(得分:0)
这件事发生在我之前,它正在变得尴尬。问题是,另一个现有的扩展(不是我写的,所以有我的借口)已经覆盖了AccountController。他们的扩展修改了注册过程,我的config.xml解除了他们的更改。所以我做的是这个:
<?php
require_once "Otherextension/CustomerRegistration/controllers/AccountController.php";
class My_Ext_AccountController extends Otherextension_CustomerRegistration_AccountController{
public function editPostAction(){
//...
}
}
因此,我使用了Otherextension AccountController,而不是扩展Mage AccountController,而后者又扩展了Mage AccountController。
也许这有助于其他人。