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 に答える