0

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?

4

2 回答 2

1

一个简单的选择是使用CSqlDataProvider。基本上,您只需设置查询和计数,数据提供程序将为每个列表项返回一个数组(以您选择的列作为键)。

于 2014-02-07T16:08:37.717 回答
0

试试这个代码。

在控制器中。

    $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));

在 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'), 

),
)); 
于 2014-02-07T16:47:54.133 回答