所以我创建了一个用户系统,我想在authenticate()
之后从我的数据库中获取一些其他字段。我怎么能这样做?
答案 0 :(得分:1)
如果您希望在身份以外的身份中存储额外信息,则可以在成功进行身份验证后执行此类操作。
这是在我的登录控制器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在数据库中填充$identity->miscParam1
(等)信息。 (回头看你的问题......我希望你不要问如何查询。我可能甚至没有回答你的问题。)