0


我试图在 Yii 中引入一个带有列表、排序和分页的选项卡视图。我有 2 个名为 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,
            ));

在我提供的视图测试中,

         $this->widget('zii.widgets.CListView', array('dataProvider'=>$dataProvider,'itemView'=>'view',     
             'id'=>'request-list',
'template' => '  {items}{pager}',
)); 

在视图页面中,我已经获取了数据

   echo $data->service_request;
    echo $data->favourite_notes;

欢迎您的所有建议..

4

1 回答 1

0

您可以使用 CDBCriteria 构建自己的排序函数

在模型方面,您可以 orderby 和 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,
        ),
    ));

现在在视图方面,您可以像这里一样做 Web pager 是分页类,而 extrapara 是分页所需的参数数组

            $this->widget('application.extensions.WebPager',
            array(
            'cssFile'=>false,
            'pages' => $pagination,
            'extraPara'=>$extraPara,
            'id'=>'link_pager'
            ));
于 2013-04-14T08:45:53.920 回答