在Magento 1.3.2.2中,我们得到了一个致命错误:
Fatal error: Call to a member function getUsername() on a non-object in
.../app/design/adminhtml/default/default/template/page/header.phtml on line 31
在订单确认过程中,Magento应该转换到成功页面。但我们却得到了那个错误。
显示一个Admin标头,其中包含此错误。如果我刷新,我会进入成功页面,如果一切正常,我应该被带到那里。
发生此错误是因为第31行的header.phtml具有条目:
$this->getUser()->getUsername();
但是getUser()方法没有返回有效的对象。这个方法非常简单,看起来像这样:
return Mage::getSingleton('admin/session')->getUser();
因此,您应该只调试一个地方:app/code/core/Mage/Admin/Model/Session.php只有一个方法setUser()对象到会话
public function login($username, $password, $request = null) {
...
$this->setUser($user);
如果用户对象加载并且有效,则意味着您自己的会话有问题:
- 检查cookie的设置方式
- Cookie路径和创建时间
如果不进行调试,远程查找问题并不容易。所以我祝你成功。
我遇到了同样的错误,并按如下方式解决了它:
- 将var文件夹备份为(var back)
- 创建一个新的var目录
- 将locks文件夹备份为(locks back){如果可用}
- 创建locks目录
刷新URL