Como visualizar Registros de una Consulta SQL Pura


(gabomda) #1

Hola Buenos dias,estoy comenzando en el mundo yii framework en la version 1.1 y me es imposible visualizar los registros traidos desde una consulta pura. hace dias que no puedo solucionarlo , seguramente sea algo sencillo pero con mi pobre conocimiento no lo e podido solucionar aun.
Les muestro mi codigo a ver si me pueden ayudar.

mi modelo es :
public function traerRecibos()
{
return Yii::app()->db->createCommand(‘select idrecibo from tbl_recibo’)->queryAll();
}

mi Controller es :

public function actionIndex()
{
    $model = new TblRecibo('traerRecibos');
    $model->unsetAttributes();  // clear any default values
    if (isset($_GET['TblRecibo']))
        $model->attributes = $_GET['TblRecibo'];
    $this->render('index', array(
        'model' => $model,
    ));
}

Mi vista es:

<?php $this->widget('zii.widgets.grid.CGridView', array( 'id'=>'tbl-recibo-grid', 'dataProvider'=>$model->traerRecibos(), // 'itemView'=>'_view', //'filter'=>$model, 'columns'=>array( 'idRecibo', ), )); ?>

al ejecutar este codigo sencillo el error es el siguiente:

widget(‘zii.widgets.CListView’, array( ‘dataProvider’=>$dataProvider, ‘itemView’=>’_view’, ));*/ ?>

( ! ) Fatal error: Call to a member function getData() on a non-object in C:\wamp\www\yii1115\framework\zii\widgets\CBaseListView.php on line 11

No puedo encontrar la solucion espero alguien me pueda ayudar.

Gracias y Saludos!


(Eloy Gonzalez) #2

Saludos @gabomda;

Bienvenido a la comunidad de Yii Framework

Prueba esto;


(gabomda) #3

Gracias por tu respuesta Eloy-Gonzalez ! lo e probado y me funciono, por otro lado estoy haciendo algo mas complejo como para ir aprendiendo. Me recomendaron que use CDbCriteria pero tengo una duda en como mostrar los datos en una View.
tengo una consulta SQL pero estoy teniendo problemas o no logro comprender como hacerlo mejor dicho…
tengo 3 tablas :
TABLA 1 con los campos id, id_tabla2(FK)
TABLA 2 con los campos id, id_tabla3(FK)
TABLA 3 con los campos id, nombre.

Creo la consulta a la tabla TABLA con los JOIN correspondientes sin problemas pero cuando paso a la vista no encuentro como por ejemplo hacer para mostrar el campo “NOMBRE” de la tabla 3 en la tabla 1, ya que, no estan relacionados directamente uno con el otro. En la vista tengo el siguiente codigo :
array(
‘name’ => ‘id’,
‘header’ => ‘CODIGO TABLA 1’,
),
array(
‘name’ => ‘id’,
‘header’ => ‘CODIGO TABLA 2’,
‘value’ => ‘isset($data->id0->id)?$data->id0->id:""’,
),
array(
‘name’ => ‘id’,
‘header’ => ‘NOMBRE TABLA 3’,
),

El valor “NOMBRE TABLA 3” es el que nose como relacionar, ya que , todo este proceso lo quiero realizar en el modelo de la tabla 1 el cual no tienen ninguna relacion directa con el modelo de la tabla 2-