2012-03-10 94 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; 
    } 
}