0

在 Magento 1.7 社区版中,我已经覆盖了客户模块的 AccountController。我修改了 createPost 方法,使其仅保存客户姓名、电子邮件和密码,并返回 JSON 输出,以便我使用 ajax 调用它。

为了测试控制器是否正常工作,我直接请求该方法,即:

www.mysite.com.au/customer/account/createpost/?firstname=john&lastname=smithemail=john.smith@mydomain.com&password=xxxxxx&confirmation=xxxxxx

我遇到的问题是,$customer->save()抛出异常(Mage_Customer_Model_Customer::EXCEPTION_EMAIL_EXISTS),消息为“客户电子邮件已存在”,可追溯到app/code/core/Mage/Customer/Model/Resource/Customer.php. 尽管出现异常,但仍插入了客户记录。

所以 Magento 试图两次拯救客户。如果我在方法的顶部输出一个退货, Mage_Customer_Model_Resource_Customer:_beforeSave(Varien_Object $customer)则会添加两条客户记录。

任何想法将不胜感激。

编辑:我意识到这是在我的 Windows 7 PC 上运行的 PHP 的问题(我安装了 BitNami WAMP 堆栈)。我将代码复制到 linux 机器上,但没有发生故障。

4

1 回答 1

1

您可能会调用parent::createPostAction();createPostAction()方法来第二次节省客户。

于 2013-09-27T06:42:46.950 回答