0

Magento 1.7 コミュニティ エディションでは、Customer モジュールの 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 は顧客を 2 回救おうとしています。メソッドの先頭でリターンを出すと 、2 つの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 に答える