[英]Zend_Db_Table_Row instance form Zend_Auth
我在项目中使用Zend_Auth
和Zend_Auth_Adapter_DbTable
。 我想从Zend_Auth
适配器( Zend_Auth_Adapter_DbTable
)获取Zend_Db_Table_Row
实例。 我还没有找到任何好的解决方案。 我需要一个Zend_Db_Table_Row
实例,因为我使用自己的行类,其中我有一个方法从依赖表中获取数据。
我知道我可以再次获取这些数据,但没有任何意义,因为Zend_Auth_Adapter_DbTable
已经从数据库中获取了这些数据。
诀窍是将行放入Zend_Auth_Storage容器中。 通过重写Zend_Auth_Adapter_Interface :: authenticate(),您可以做到这一点。
/**
* Authenticate
*
* Overriding to provide more information about the authenticated user
*
* @return Zend_Auth_Result
*/
public function authenticate()
{
$result = parent::authenticate();
// Store row on success
if ($result->getCode() == Zend_Auth_Result::SUCCESS) {
return new Zend_Auth_Result(
$result->getCode(),
$this->getResultRowObject(null, array('*')),
$result->getMessages()
);
} else {
return $result;
}
}
Zend_Auth_Adapter_DbTable
仅提取存储在users表中的那些字段( getResultRowObject()
)。 我认为使用Zend_Auth_Adapter_DbTable
提供的数据实例化您的Row类(或User类)更方便
在这里查看类似的问题: 在Zend_Auth中,我可以获得域模型User对象而不是stdClass吗?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.