Php Zend_Auth->;getStorage->;write()数据对象丢失

Php Zend_Auth->;getStorage->;write()数据对象丢失,php,zend-framework,zend-auth,Php,Zend Framework,Zend Auth,我对我的身份验证数据越来越着迷了 当有人登录我的应用程序时,我的authcontroller将用户数据存储在Zend_Auth存储中 class AuthController extends Zend_Controller_Action { ... public function loginAction() { ... $userMapper = new Application_Model_UsersMapper(); $user = $userMapper-

我对我的身份验证数据越来越着迷了

当有人登录我的应用程序时,我的authcontroller将用户数据存储在Zend_Auth存储中

class AuthController extends Zend_Controller_Action
{ ...
   public function loginAction()
   { ...
      $userMapper = new Application_Model_UsersMapper();
      $user = $userMapper->fetchById($adapter->getResultRowObject()->id);
      $this->auth->getStorage()->write($user);
   }
}
在此之后,我创建了一个插件,将用户权限(存储在$userMapper返回的user对象中)添加到Acl系统中


问题是,当我调用Zend_Auth->getInstance()->getIdentity()时,我只找到用户名,而不是整个对象

这是因为标识实际上是用户名(在您的情况下)。如果要获取整个对象,可以按如下方式获取:

$user = $this->auth->getStorage()->read();

另一个要考虑的是ZDENYAUTH的默认存储是一个会话,所以如果它被附加到一些其他资源(如DB等)/P>,则可能需要序列化该对象。


希望这有帮助:)

这是因为标识实际上是用户名(在您的情况下)。如果要获取整个对象,可以按如下方式获取:

$user = $this->auth->getStorage()->read();

另一个要考虑的是ZDENYAUTH的默认存储是一个会话,所以如果它被附加到一些其他资源(如DB等)/P>,则可能需要序列化该对象。


希望这有帮助:)

我已经解决了我的问题!mysql配置中出现错误。read()函数,在存储器中找不到任何内容,返回用户名。谢谢你的帮助。

我已经解决了我的问题!mysql配置中出现错误。read()函数,在存储器中找不到任何内容,返回用户名。谢谢你帮助我。

无事可做;我已将$this->auth->getIdentity()替换为$this->auth->getStorage()->read(),但结果总是一样的。最奇怪的是,我刚刚在本地主机上复制了我服务器上的所有代码,效果很好!无事可做;我已将$this->auth->getIdentity()替换为$this->auth->getStorage()->read(),但结果总是一样的。最奇怪的是,我刚刚在本地主机上复制了我服务器上的所有代码,效果很好!var_转储$user返回什么?代码似乎没问题。如何添加用户权限,请向其中添加代码。var_转储$user返回什么?代码似乎没问题。如何添加用户权限,请添加代码。