Zend framework 如何在Zend中的会话中存储更多信息?

Zend framework 如何在Zend中的会话中存储更多信息?,zend-framework,Zend Framework,因此,我创建了一个用户系统,并希望在authenticate()对其进行加密后,从数据库中获取一些其他字段。如何执行此操作?如果您希望在身份中存储超出典型身份的额外信息,则可以在成功进行身份验证后执行类似操作 这在我的登录控制器中,processAction()成功验证后: $identity = new stdClass; $identity->username = strtolower( $auth->getIdentity() ); $identity->miscPara

因此,我创建了一个用户系统,并希望在
authenticate()
对其进行加密后,从数据库中获取一些其他字段。如何执行此操作?

如果您希望在身份中存储超出典型身份的额外信息,则可以在成功进行身份验证后执行类似操作

这在我的登录控制器中,
processAction()
成功验证后:

$identity = new stdClass;
$identity->username = strtolower( $auth->getIdentity() );
$identity->miscParam1 = 'Miscellaneous parameter1';
$identity->miscParam2 = 'Miscellaneous parameter2';
# ... etc ...

$storage = $auth->getStorage();
$storage->write($identity);
需要注意的是,如果您使用这种方法,那么每次您想要获取用户名或其他参数时,您都需要像这样检索它:

$identity = Zend_Auth::getInstance()->getStorage()->read();
echo $identity->username; # echo is just for example
echo $identity->miscParam1;
echo $identity->miscParam2;
请注意,您将使用
getStorage()->read()
而不是
getIdentity()
(这也可能有效,但我不确定)


现在,唯一要做的就是使用Zend_Db_Select从数据库中填充信息。(回头看你的问题…我希望你不是在问如何查询。我可能甚至没有回答你的问题。)

Zend_Auth->getIdentity()
调用
Zend_Auth->getStorage()->read()
,但如果存储空间为空,则返回null,因此使用getIdentity可以,因为它稍微短一点,也许更能描述正在发生的事情。@drew010这很好知道。我将自己开始使用它。:)