Buenos días hoy en FirmWare me he encontrado con la inquietud de cómo crear una vista con el ORM Doctrine (Object Relational manager) orientado a MySql.

¿ Que es una vista ?

En pocas palabras una vista es una persistencia a la base de datos que solo ejecuta sentencias consultoras.

Ahora de la teoria a la práctica:


<?php

$query_productos=Doctrine::getTable("Productos")

->createQuery('p');

?>

2. Ahora vamos a crear la vista a partir de la variable $query la cual esta formateada con la sentencia de consulta a la tabla proveedores.


<?php

$vista_producto = new Doctrine_View($query_productos,'consulta_productos');

?>

En la anterior linea , creamos una variable a la cual se le asigna la clase View ofrecida por doctrine Doctrine_View(), con dos parametros incluidos el primero es la sentencia sql y el segundo es el seudonimo que se le quiera dar a la vista.

3. ejecutando creacion de la vista


<?php

$vista_producto->create();

?>

4. ahora cada vez que ejecutemos la sentencia sql automaticamente llamara la vista creada con anterioridad


<?php

$query_productos->execute();

?>