尝试设置基于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);
}
请让我知道我在这里做错了什么。
答案 0 :(得分:0)
这是因为我使用非对象调用了一个方法。就我而言,
Zend_Registry::get('Default_DiContainer')->getUserService()
->getIdentity()
这个值为null,因此我无法调用getRoles();
另一个答案可以在这里找到:RoleInterface throws "call on a non-object" error