【问题标题】:Magento 1.3.2.2: Fatal error: Call to a member function getUsername() on a non-objectMagento 1.3.2.2:致命错误:在非对象上调用成员函数 getUsername()
【发布时间】:2012-01-26 19:48:25
【问题描述】:

在 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 标头。如果我刷新,我会进入成功页面,如果一切正常,我应该进入该页面。

【问题讨论】:

  • 嗨!你有没有设法解决这个问题?我在 1.7.0.0 版本中也遇到了这个问题?
  • 1.7也有问题。

标签: php magento admin fatal-error


【解决方案1】:

出现此错误是因为第 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 路径和创建时间

不调试,远程查找问题并不容易。所以祝你成功。

【讨论】:

    【解决方案2】:

    我遇到了同样的错误,解决方法如下:

    1. 将 var 文件夹备份为 (var-back)
    2. 创建一个新的 var 目录
    3. 将 locks 文件夹备份为(locks-back){如果可用}
    4. 创建锁目录

    刷新网址

    【讨论】:

      猜你喜欢
      • 2010-12-20
      • 2015-06-16
      • 2016-02-02
      • 2014-05-06
      • 1970-01-01
      • 2023-03-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多