一
26
Filed under: YII
YII的CListView使用起来很方便,并且它的dataprovider也是可以自定义的。比如想要获取其它表里的内容,可以在controller中这样写:
$dataProvider=new CActiveDataProvider('tableA', array( 'criteria'=>array( 'select'=>'ta.*', 'condition'=>'tb.status=1', 'alias'=>'ta', 'order'=>'id DESC', 'join'=>'JOIN '.tableB::model()->tableName().' ta ON ta.pid=tb.id', 'with'=>'p', ), 'pagination'=>array( 'pageSize'=>20, ), ));
在CListView的view中使用的时候:
echo CHtml::encode($data->id); echo CHtml::encode($data->p['title']);
注意,“p”是在前面’with’=>’p'中定义的。用以上方法可以大大扩充dataprovier的使用范围。
如果需要更复杂的数据整理,建议自行提取数据放入array,然后再用CArrayDataProvider将Array转化为dataprovider。
Tags:



No Responses
Leave a Response