Hola a todos, resulta que he venido trabajando con Zend_Auth durante un buen tiempo y jamás me ah dado problemas hasta ahora que debo grabar el id_usuario en la tabla session:
SESSION
----------
id (primary)
modified (modifiedColumn)
lifetime (lifetimeColumn)
data (datacolumn)
id_user (id del usuario)
Código PHP:
$authAdapter = new Zend_Auth_Adapter_DbTable($db);
$select = $authAdapter->getDbSelect();
$select->where("estado=?", 1);
$authAdapter->setTableName( 'usuarios' );
$authAdapter->setIdentityColumn('email');
$authAdapter->setCredentialColumn('password');
# Verificando
$authAdapter->setIdentity($email);
$authAdapter->setCredential( Hash::getPassword($password) );
# Instanciando
$auth = Zend_Auth::getInstance();
$aResult = $auth->authenticate($authAdapter);
switch($aResult->getCode()){
case Zend_Auth_Result::SUCCESS:
$dataAuth = $authAdapter->getResultRowObject(null, 'password');
$auth->getStorage()->write($dataAuth);
# Actualizamos el campo id_usuario en tabla session
$usuarioModel->actualizarIdUsuarioEnSesion(Zend_Session::getId(), $dataAuth->id_usuario);
// Mas procedimientos
break;
case Zend_Auth_Result::FAILURE_IDENTITY_NOT_FOUND:
// procedimiento si no se encuentra usuario
break;
case Zend_Auth_Result::FAILURE_CREDENTIAL_INVALID:
// Procedimiento si falla contraseña
break;
}
Como ven lo que hago es tomar los datos de adaptador y luego mediante el modelo actualizar el campo id_usuario con otra consulta, pero no creo que sea lo indicado, alguna idea de como hacerlo de una forma más optima usando el mismo Zend_Auth??
Saludos.