Ver Mensaje Individual
  #4 (permalink)  
Antiguo 17/02/2011, 13:05
Avatar de GatorV
GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: fetchOne y fetchRow

1.- fetchOne siempre te va a devolver el primer valor de la primera consulta, por ejemplo si es un string pues un string, si es un int un int. No existe el método fetchOne para Zend_Db_Table_Abstract solo existe para Zend_Db_Adapter.

2.- Si estas devolviendo objetos es necesario usar fetchAll, pero lo puedes hacer con un select por ejemplo:
Código PHP:
Ver original
  1. public function getNewUsersByDepartment($sDepartment)
  2. {
  3.          $Select = $this->select();
  4.          $Select->where('department=?', $sDeparment)
  5.                     ->where('status=new')
  6.                     ->order('id desc');
  7.  
  8.          return $this->fetchAll($Select);
  9. }

Como te digo si lo que tu haces es trabajar con tu Zend_Db_Table_Abstract de forma como debe de ser es necesario que uses fetchAll/fetchRow ya que estos siempre te van a devolver objetos "hijos" que representan rows en tu tabla.

Si lo que quieres es regresar arrays entonces no uses Zend_Db_Table_Abstract y crea un modelo simple que use Zend_Db_Adapter solamente.

3.- Si también lo pones en el registro puedes hacer un Zend_Registry::get() o usar Zend_Db_Table_Abstract::getDefaultAdapter() o usar el método getAdapter de Zend_Db_Table_Abstract.

Saludos.