我试图在Yii中带一个带有列表,排序和分页的标签视图。我有两个名为service_request的表和数据来自的收藏夹。在该页面中,我需要显示服务请求和收藏夹添加日期以及其他一些字段。我尝试使用join实现它,但它没有成功列出服务请求中的数据。在我的控制器动作中,我添加了
$criteria = new CDbCriteria;
$criteria->select = 'favourite_notes,s.service_request_id';
$criteria->join = 'LEFT JOIN service_request s ON service_request_id = 1';
$criteria->condition = 'favourite_type = 1';
$data=new CActiveDataProvider('ProviderFavourite',array('criteria'=>$criteria,'pagination'=>array('pageSize'=>1)
));
$this->renderPartial('viewtest', array(
'ModelInstance' => ProviderFavourite::model()->findAll($criteria),
'dataProvider'=>$data,
));
在我提供的viewtest中,
$this->widget('zii.widgets.CListView', array('dataProvider'=>$dataProvider,'itemView'=>'view',
'id'=>'request-list',
'template' => ' {items}{pager}',
));
在视图页面中,我获取了数据
echo $data->service_request;
echo $data->favourite_notes;
欢迎您提出所有建议..
答案 0 :(得分:0)
您可以使用CDBCriteria
构建自己的排序功能在模型方面,你可以命令和orderById通过get或post
$criteria=new CDbCriteria;
$criteria->alias='b';
$criteria->order='b.'.$orderById.' '.$orderBy.',b.type asc,b.smallimage desc';
$dataProvider=new CActiveDataProvider($this->tableName(), array(
'criteria' => $criteria,
'pagination'=>array(
'pageSize'=>$limit,
),
));
现在在视图方面你可以这样做,网页分页器是分页类,extrapara是分页需要的参数数组
$this->widget('application.extensions.WebPager',
array(
'cssFile'=>false,
'pages' => $pagination,
'extraPara'=>$extraPara,
'id'=>'link_pager'
));