繁体   English   中英

Zend_Db_Table_Row实例形式Zend_Auth

[英]Zend_Db_Table_Row instance form Zend_Auth

我在项目中使用Zend_AuthZend_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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM