Zend Framework:如何在使用DbTable Auth Adapter时检查其他列?

And*_*rew 5 zend-framework zend-auth zend-db

目前,我正在定期DbTable Auth Adapter:

protected function _getAuthAdapter($formData)
{       
    $dbAdapter = Zend_Db_Table::getDefaultAdapter();
    $authAdapter = new Zend_Auth_Adapter_DbTable($dbAdapter);
    $authAdapter->setTableName('users')
        ->setIdentityColumn('username')
        ->setCredentialColumn('password');
    $authAdapter->setIdentity($formData['username']);
    $authAdapter->setCredential(md5($formData['password']));
    return $authAdapter;
}
Run Code Online (Sandbox Code Playgroud)

但我想检查数据库中的其他列(IsActive例如).我不知道是否可以使用适配器完成此操作.如何才能做到这一点?

Bri*_*her 0

包含的 Auth Adapter Zend_Auth_Adapter_DbTable 不允许您检查附加列。您可以扩展 Zend_Auth_Adapter_DbTable 类并添加另一列。您必须为新字段 $_otherFieldValue 的值添加一个成员变量和一个公共函数 setMemberField($value)。最后,你必须覆盖:

protected function _authenticateCreateSelect()
Run Code Online (Sandbox Code Playgroud)

希望有帮助。