您好,当客户点击"忘记密码"他们收到电子邮件,其中包含重置链接。单击时,这是他们收到的错误。致命错误:在第750行的/home/ishieldz/public_html/store/app/code/core/Mage/Customer/controllers/AccountController.php中的非对象上调用成员函数setCustomerId() 任何帮助,将不胜感激。谢谢!
/ ** *显示重置忘记密码表格 * *当用户点击密码重置确认电子邮件中的相应链接时,将重定向此操作 * / public function resetPasswordAction() { $ resetPasswordLinkToken =(string)$ this-> getRequest() - > getQuery(' token'); $ customerId =(int)$ this-> getRequest() - > getQuery(' id'); 尝试{ $ this-> _validateResetPasswordLinkToken($ customerId,$ resetPasswordLinkToken); $这 - > loadLayout(); //将收到的参数传递给重置忘记密码表单 $这 - > getLayout() - > getBlock(' resetPassword') - > setCustomerId($客户ID) - > setResetPasswordLinkToken($ resetPasswordLinkToken); $这 - > renderLayout(); } catch(Exception $ exception){ $ this-> _getSession() - > addError($ this-> _getHelper(' customer') - > __('您的密码重置链接已过期。') ); $这 - > _redirect(' / * / forgotpassword&#39); } }
答案 0 :(得分:1)
如果你在 Magento 1.9.1 这是一个对我有用的解决方案。
如果您的主题不包含任何特定的自定义配置或布局设置,您可以安全删除位于/app/design/frontend/default/<your_theme_package>/<your_theme_name>/layout/customer.xml
<的customer.xml(或只是重命名为customer1.xml)文件/ p>
如果删除此文件,magento将加载默认配置选项 (带有更新)来自出厂默认的magento主题。 /app/design/frontend/base/default/layout/customer.xml
请记住通过管理区域刷新/刷新magento配置,这将强制重新加载customer.xml文件。
答案 1 :(得分:0)
似乎你调用了一个未声明的对象,所以也许它只是一个变量。 验证您是否在AccountController.php
中的第750行之前声明了您的对象您必须放置对象的声明(例如:$ ob = new Customer();) 包含setCustomerId()方法的方法正在运行的方法中。
答案 2 :(得分:0)
登录magento。去系统,设计。删除当前主题,然后重新添加。