0

我有一个错误,实际上这是错误通知,但我仍然想修复它;

当我尝试使用 访问页面时null role,它显示以下消息:

Notice: Trying to get property of non-object in C:\Zend\Apache2\htdocs\hotelrwanda\application\plugin\AccessCheck.php on line 18

如何在这里修复它是我的脚本:

 public function preDispatch(Zend_Controller_Request_Abstract $request) {

        $resource = $request->getControllerName();
        $action = $request->getActionName();

        $identity = $this->_auth->getStorage()->read();
        $role = $identity->role;


        if(!$this->_acl->isAllowed($role, $resource, $action)){
            $request->setControllerName('users')
                    ->setActionName('login');
        }
    }

行:18 是这一行:$role = $identity->role;

4

1 回答 1

3
  public function preDispatch(Zend_Controller_Request_Abstract $request) {

            $resource = $request->getControllerName();
            $action = $request->getActionName();

           $role = 'guest';  //your default role 

        if(Zend_Auth::getInstance()->hasIdentity())
        {
            $role = Zend_Auth::getInstance()->getIdentity()->role;
        }


            if(!$this->_acl->isAllowed($role, $resource, $action)){
                $request->setControllerName('users')
                        ->setActionName('login');
            }
        }

这里的 'guest' 充当默认角色。您可以将其命名为您喜欢的任何名称,但请确保在您的 acl 中添加此角色并相应地授予此角色的权限。

于 2012-05-13T09:25:33.570 回答