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

时间:2013-11-24 06:14:13

标签: php zend-framework

尝试设置基于zend框架的应用程序时。我收到了这个错误。

  

致命错误:在第47行的C:\ xampp \ htdocs \ issues-master \ application \ modules \ default \ services \ Acl.php中的非对象上调用成员函数getRoles()

我查看了代码并且没有看到任何错误。下面是代码,

/**
 * _setupRoles 
 * 
 * @return void
 */
protected function _setupRoles()
{
    $this->_roles = $this->_roleService->getAllRoles();
    foreach ($this->_roles as $i) {
        $this->_acl->addRole($i);
    }
    $currentRoles = Zend_Registry::get('Default_DiContainer')->getUserService()
        ->getIdentity()->getRoles();

    $this->_acl->addRole(new Zend_Acl_Role('user'), $currentRoles);
}

请让我知道我在这里做错了什么。

1 个答案:

答案 0 :(得分:0)

这是因为我使用非对象调用了一个方法。就我而言,

Zend_Registry::get('Default_DiContainer')->getUserService()
        ->getIdentity()

这个值为null,因此我无法调用getRoles();

另一个答案可以在这里找到:RoleInterface throws "call on a non-object" error