0


Yii でリスト、並べ替え、およびページネーションを使用してタブ ビューを表示しようとしています。service_request という名前の 2 つのテーブルと、データの取得先のお気に入りがあります。そのページでは、サービス リクエストとお気に入りの追加日、およびその他のフィールドを表示する必要があります。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 ページャーはページネーション クラスで、extrapara はページネーションに必要なパラメーターの配列です。

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