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, 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()
{
?>
<table>
<?
$conexion = Yii::app()->db ;
$sql = "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)";
$dataReader = $conexion -> createCommand($sql) -> query();
while(($fila = $dataReader -> read()) !== false)
{
?>
<tr>
<td><?=$fila['sistema']?></td>
<td><?=$fila['opcion']?></td>
</tr>
<?
}
?>
</table>
<?
}
}
?>
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.