Cuando hacemos una consulta a la base de datos con Zend_Db, nos devuelve un objeto, con mucha info que pocas veces usamos. Generalmente nosotros queremos que nuestro metodo devuelva un array o un objeto, con las columnas de la consultas, y no mas que eso.
Si queremos que solo devuelva los resultados, en un array, tenemos una propiedad que nos soluciona esto.
El objeto que devulve fetchRow, y fetchAll, tiene una propiedad llamada toArray, que te devuelve solo las columnas del objeto en un array.
De esta manera, si nosotros quisieramos por ejemplo en nuestro modelo, el resultado de un fetchRow guardarlo en un Json, podriamos hacer lo siguiente.
-
-
<?php
-
class Usuarios extends Zend_Db_Table
-
{
-
protected $_name = ‘usuarios’
-
public function getRow($id)
-
{
-
$select = $this->select()
-
->where(‘usuario_id = ?’, $id);
-
return $this->fetchRow($select)
-
->toArray();
-
}
-
}
-
?>
-
Los que nos devuelve este ejemplo es un array con todas las columnas de nuestra tabla usuarios, donde el id del registro es igual al que le pasamos como parametro.





August 15th, 2008 at 1:50 am
Hola Pablo, corrigeme si me equivoco, pero para lo que tu estas proponiendo existe la funcion fetchMode en Zend_Db.
Si lo que necesitas es que te devuelva es un array, solo necesitas cambiar el fetchMode, en el caso de tu ejemplo, seria:
$this->setFetchMode(Zend_Db::FETCH_ASSOC);
el codigo anterior haria que te retornada el resultado en un array associativo.
Puedes ver las demas constantes en el manual de Zend_DB en el sitio de Zend Framework.
La funcion que tu dices esta muy bien, pero me parecio que era necesario mencionar la otra forma, ya que no se si se te escapo o no la mencionaste a proposito.
Saludos
August 15th, 2008 at 11:38 am
Ni, lo que yo buscaba es que solo me devuelva las columnas de la base, si yo hago lo que vos mencionas, me sigue llegando toda la info que no necesito. Con este metodo solo me devuelve el array con los resultados del fetchRow.
Probalo y fijate haciendo un print_r de lo que devuelve para que te des cuenta lo que digo.
August 18th, 2008 at 1:48 am
demasiado básico y 0 aporte, y aparte aprende a usar un framework de verdad como symfony.
Haahah mentira son bromas, pero hay maneras y maneras de decir las cosas ¿no crees?
August 18th, 2008 at 1:53 am
Jejeje. No era para que te enojes, siempre leo el blog, y es de los pocos que sobrevivieron a la limpieza del reader, realmente esta bueno. Pero me entusiasme con el titulo, y bue, nada.
Suerte!
August 18th, 2008 at 2:21 am
ajajaj bueno ¿amigos?
August 18th, 2008 at 11:44 am
Obvio suerte!