Magento 1.3.2.2:致命错误:在非对象上调用成员函数getUsername()

时间:2012-01-26 19:48:25

标签: php magento admin fatal-error

在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标头并显示此错误。如果我刷新,我会进入成功页面,如果一切正常,我应该被带走。

2 个答案:

答案 0 :(得分:2)

发生此错误是因为第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设置的方式
  • cookies路径和创建时间

没有调试就很难远程找到问题。所以我祝你成功。

答案 1 :(得分:1)

我遇到了同样的错误并解决了如下:

  1. 将var文件夹备份为(var-back)
  2. 创建新的var目录
  3. 将locks文件夹备份为(锁定){if available}
  4. 创建锁目录
  5. 刷新网址