PDF en Yii

Hola, por favor…una manita…Necesito generar un PDF, desde un grid, este PDF debe contener datos de varias tablas (adjunto una imagen con la BD), he seguido este enlace PDF , usando mpdf, en el controlador de Cupo puse esta funcion:


public function actionPdf($id)

        {

            $model2=new Asignacion();

            $criteria = new CDbCriteria;

            $criteria->condition = "cupo_idcupo=".$id;

            $model2=Asignacion::model()->findAll($criteria);

            $this->render('pdf',array(

            'model'=>$this->loadModel($id),'model2'=>$model2,

            ));

        }

para recuperar datos de la tabla Asignacion, y en el archivo pdf.php, se encuentra este código:


<?php


/*

 * To change this template, choose Tools | Templates

 * and open the template in the editor.

 */




$html.='

<link rel="stylesheet" type="text/css" href="'.Yii::app()->request->baseUrl.'/css/pdf.css" />


<table id="yw0" class="detail-view2">

<tr class="principal">

<td align="left"><b>DATOS DEL CUPO</b></td>

<td>'.$model->idcupo.'</td>

<tr>

<tr class="odd"><td> <b>N° Control</b> </td><td> '.$model->fechaasigncupo.'</td></tr>

<tr class="even"><td> <b>Trimestre Ejecucion</b> </td><td>  </td></tr>

<tr class="odd"><td> <b>Asignaciones</b></td>

                <td>

                    </td></tr>

<tr class="even"><td> <b>Cliente</b> </td><td> '.$model->clienteIdcliente->nombrecliente.' </td></tr>

';


$data=$model2->search()->getData();

$contador=count($data);

$i=0;

while($i<$contador)

{   


$html.='<tr><td> <b>Monto Asignado</b> </td>

';

$html.='</tr>';


$i++;

}

$html.='</table>';


$mpdf=new mPDF('win-1252','LETTER','','',15,15,25,12,5,7);

$mpdf->WriteHTML($html);

$mpdf->Output('Ficha-Contrato-'.$model->idcupo.'.pdf','D');

exit;


?>



claro que no es el oficial, estoy realizando pruebas…el problema es que me sale este error:


Fatal error: Call to a member function search() on a non-object in D:\xampp\htdocs\vouchers\protected\views\cupo\pdf.php on line 35

como podria solucionarlo? por favor una manita.Saludos

El problema esta en estas dos líneas:




$data=$model2->search()->getData();

$contador=count($data);



Es posible que la consulta de search no este bien preparada. Te explico un poco, el método search devuelve un dataProvider, al cual le haces un getData() para obtener un array (como si hubieras hecho desde el principio un findAll(). Lo mejor que puedes hacer es que $data sea un objeto de Asignacion creado a través de findAll() con el filtro que quieras.

Gracias por la ayuda, esta solucionado :)