DAO Yii

hola, comienzo a trabajar con Yii y necesito saber como se utiliza el DAO para realizar consultas oracle personalizadas que combinan mas de dos tablas, agradezco de ante mano a la persona que pueda ayudarme.

Hola Hascrock,

Puede consultar cómo funciona DAO en http://www.yiiframework.com/doc/guide/1.1/en/database.ar

Está en varios idiomas. PAra revisar la configuración propia de Oracle debe soncultar la documentación de PDO.

Espero ayude ;)

Saludos y éxitos

Ricardo

Gracias Ricardo por tu ayuda, pero aun no logro entender a fondo como empiezo a crear mis propias consultas, propios modelos y/o controladores, si alguien pudiera facilitarme un ejemplo en el cual pueda ver y enternderlo, le agradeceria enormemente.

Gracias Nuevamente

hascrock.

Actualmente en Yii existen dos formas de crear los modelos y controladores (las vistas se generan manualmente a menos que sean parte de un CRUD):

[list=1][]Por consola, usando el comando ./yiic shell[]Vía web, usando Gii (http://www.yiiframework.com/doc/guide/1.1/en/topics.gii )[/list]

Personalmente, creo que es más cómodo por Gii (yo uso GiiX y Gii-Template-Collection que facilitan ciertas tareas con Gii).

El proceso en Yii es:

[list=1][]Crear el modelo de datos en el motor de base de datos[]Configurar la conexión a la BD en protected/config/main.php[]Entrar a Gii y definir los modelos[]Crear los CRUDs que sean necesarios: mientras se aprende, es buena idea crearlos siempre, para aprender a confirgurarlos y programarlos ;)[*]Editar y personalizar las vistas, controladores y modelos[/list]

Espero que sea de ayuda

Saludos y éxitos.

Ricardo

Gracias nuevamente Ricardo… te comento, ya estoy conectado a una base de datos (Oracle) y he con gii creado los modelos y CRUD’s de las tablas que voy a trabajar, pero ya estoy en el punto en el que necesito crear mis propias consultas o sea inyectar código sql, necesito realizar consultas que muestren datos de varias tablas, cosa que no he podido hacer con el criteria, he leído a cerca de DAO pero no logro comprender como implementarlo en mi proyecto, Yii no tiene tutoriales y en el punto en el que estoy, las líneas de codigo que muestra no son suficientes para mi.

Gracias por su ayuda.

hascrock!

Yo llevo 1 semana aprendiando de YII y creo que voy en el mismo nivel de aprendisaje que tu.

Tambien estoy en la etapa de hacer mis propias querys y hacer el despliegue.

Yo lo que hice fue crear un controlador y dentro hacer el sgte codigo, el cual mlo despliego de inmediato en una tabla simple. Lo amigos mas expertos seguramente tendran mayor conocimiento para llevar esto a vistas y modelos.

<?

class ControlAccesoController extends CController{

public function actionAdmin()


{


      ?&gt;


   &lt;table&gt;


      &lt;?	 


  


   &#036;conexion = Yii::app()-&gt;db  ;


   &#036;sql = &quot;SELECT sis_sistemas.sis_nom_sistema as sistema, men_menu.men_id_menu_sistema as id, men_menu.men_des_text as opcion


   FROM men_menu INNER JOIN sis_sistemas ON (men_menu.sis_id_sistema = sis_sistemas.sis_id_sistema)&quot;;   


   &#036;dataReader = &#036;conexion -&gt; createCommand(&#036;sql) -&gt; query();   


   while((&#036;fila = &#036;dataReader -&gt; read()) &#33;== false)   


   {   


    ?&gt;


       &lt;tr&gt;


       &lt;td&gt;&lt;?=&#036;fila['sistema']?&gt;&lt;/td&gt;


       &lt;td&gt;&lt;?=&#036;fila['opcion']?&gt;&lt;/td&gt;





       &lt;/tr&gt;





    &lt;?


   }      


   


   ?&gt;


   


   &lt;/table&gt;


   &lt;?            





}

}

?>

La forma de llamarlo es : http://localhost/MI_SITIO/index.php?r=ControlAcceso/admin

Espero haberte ayudado.

David

Hola David

Gracias por tu ayuda, y como dices, ahora necesito alguien que me ayude a llevar la consulta a la vista… pero asi funciona

Gracias nuevamente!!

si logras obtener ese dato… no me molestaria para nada si me lo comunicas… lo mismo hare yo si logro hacer vistas y modelos para esto.

Gracias

David, tengo lo siguiente: (funciona)

Dentro de mi modelo tengo lo siguiente:

public function Consultar()

{

$conexion = Yii::app()->db ;

$sql = "SELECT TRA_ITINERARIOS.ID, TRA_ITINERARIOS.VE_PLACA, GEN_MUNICIPIOS.NOMBRE

FROM TRA_ITINERARIOS, GEN_MUNICIPIOS

WHERE TRA_ITINERARIOS.MU_ORIGEN = GEN_MUNICIPIOS.CODIGO

AND VE_PLACA = ‘XMA943’";

$dataReader = $conexion -> createCommand($sql) -> query();

return $dataReader;

}

Dentro de mi controlador lo siguiente:

public function actionIndex()

{

$model=new TRAITINERARIOS;

$model->unsetAttributes();

$this->render (‘index’, array(‘resultado’=> $model->Consultar()));

}

y en mi vista lo siguiente:

<table>

<tr>

<td>ID</td>

<td>VE_PLACA</td>

<td>NOMBRE</td>

</tr>

<?php

//echo sizeof($resultado);

foreach($resultado as $row)

{

echo "<tr><td>".($row["ID"])."</td>";

echo "<td>".($row ["VE_PLACA"])."</td>";

echo "<td>".($row ["NOMBRE"])."</td></tr>";

}

?>

</table>

solo queda personalizar la vista.