2012-03-10 93 views
0

我在我的项目中使用了Zend_AuthZend_Auth_Adapter_DbTable。我想从Zend_Auth适配器(Zend_Auth_Adapter_DbTable)获得Zend_Db_Table_Row实例。我还没有找到任何好的解决方案。我需要一个Zend_Db_Table_Row实例,因为我使用自己的行类,我有一个方法从依赖表中获取数据。Zend_Db_Table_Row Zend_Auth实例表格

我知道我可以再次获得这些数据,但它没有任何意义,因为这个数据已经从数据库中提取了Zend_Auth_Adapter_DbTable

回答

1

诀窍是把行插入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; 
    } 
}