質問

I want this:

SELECT i.inmueble_nombre, a.arrendatario_nombre, a.arrendatario_email, c.contrato_fecha_ini, c.contrato_fecha_fin
FROM zf_inmuebles i, zf_arrendatarios a, zf_contratos c
WHERE c.contrato_estado =  'ALta'
AND i.inmueble_id = c.zf_inmuebles_inmueble_id
AND a.arrendatario_id = c.zf_arrendatarios_arrendatario_id

In a dataprovider for a Clistview, how can I do it?

役に立ちましたか?

解決

One simple option is to use a CSqlDataProvider. Basicaly, you just set the query and the count, and the data provider will return an array (with your selected columns as keys) for each list item.

他のヒント

Try this code.

In controller.

    $sql = "SELECT i.inmueble_nombre, a.arrendatario_nombre, a.arrendatario_email, c.contrato_fecha_ini, c.contrato_fecha_fin
    FROM zf_inmuebles i, zf_arrendatarios a, zf_contratos c
    WHERE c.contrato_estado =  'ALta'
    AND i.inmueble_id = c.zf_inmuebles_inmueble_id
    AND a.arrendatario_id = c.zf_arrendatarios_arrendatario_id";

    $dataProvider=new CSqlDataProvider($sql,array(
    'pagination'=>array(
    'pageSize'=> '10', //no of record per page here
    ),);
$this->render('VIEW_NAME', array('dataProvider'=>$dataProvider));

In VIEW_FILE

$this->widget('zii.widgets.CListView',

            array(
                      'dataProvider'=>$dataProvider,
                      'ajaxUpdate'=>true,
                      'columns'=>array(
                      array('header'=>'Inmueble Nombre','name'=>'inmueble_nombre'),  
                      array('header'=>'Arrendatario Nombre','name'=>'arrendatario_nombre'), 

),
)); 
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top