November 14th, 2011 Category: Curso Zend Framework
31 Comments »

En el video de hoy voy a mostrarles como hacer un join con otras tablas, en nuestro caso tenemos la tabla posts, y la tabla categories, vamos a tratar de crear posts que tengan una categoria asociada y mostrar los post a partir de la categoria por la que filtramos.

Para esto vamos a usar un Join para mostrar los nombres de las categorias a las que esta asociada una noticia, y un helper de la vista para mostrar el listado de categorias dentro de nuestro layout.

Aca les dejo el video

Como material extra pueden leer Zend_Db_Select aca van encontrar todo lo referente a armar querys con Zend Framework

Ver todos los capitulos del curso

Seguir leyendo

November 20th, 2008 Category: Zend Framework
1 Comment »

Ultimamente estoy escribiendo bastante y mas sobre Zend Framework, esto es debido porque en el trabajo estamos desarrollando mucho dependiendo de este framework, y no solo yo, somo varios, y muchos de ellos estan encontrando cosas realmente interesantes, que todavia no habia visto referencias en Espaniol, espero poder aportar todos esos descubrimientos.

Un descubrimiento importante que surgio en el trabajo despues de que uno de los chicos estaba debugueando una aplicacion, fue el uso de Binding variables en Oracle con Zend_Db_Select.

Una forma muy comun de creer que usamos binding variables es la siguiente.

$query = $this->select()->where->(' id = ?', $id );

El problema es que esto Zend_Db_Select lo procesa y hace el reemplazo de lo desconocido (?), por el parametro que continua, si es una variable reemplaza el ? por la variable que se pasa como segundo parametro, y si fuera un array , reemplaza por orden.

Si hacemos un echo del query resultante, esto nos va a dar los siguiente

SELECT * FROM tabla WHERE id = 1;

Cuando lo que deberia devolver para que el motor de Oracle saque provecho de las binding variables seria, lo siguiente:

SELECT * FROM tabla WhERE id =:id;

Si quisieramos aprovechar esto con ZF la solucion es simple.La consulta anterior podemos generarla de la siguiente forma.

select()->where( 'id = :id ' );
$this->fetchAll( $query, array( 'id' => 1));
?>

Hay una nota muy interesante sobre las binding variables de Oracle en el blog de Web And Beer. Las binding son una opcion mas que importante para aprovechar el motor de la base de datos, seria bueno usarla de la manera que corresponde.

Seguir leyendo