6

モデルにカスタム関数を作成し、生データを返します。

function(){
...
$connection=Yii::app()->db;
$command=$connection->createCommand($sql);
$rows=$command->queryAll();
return $rows;
}

$ campModel = $model->function。。

次に、CArrayDataProviderでこれらの行を使用します。

$dataProvider=new CArrayDataProvider($campModel);

最後に、CGridを使用して表示しようとしています。

$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'bo-campaigns-grid',
'dataProvider'=>$campModel,...

これはCGridのページング方法に関係していると思います...しかし私は迷子になっています助けてくれてありがとう:)

4

3 に答える 3

9

CArrayDataProviderには定義されていないため、新しいCSortオブジェクトとCPaginationオブジェクトを作成し、それらをデータプロバイダーに割り当てます。CSortの作成例は次のとおりです。

$dataProvider=new CArrayDataProvider($campModel);
$sort = new CSort();
$sort->attributes = array(
            'fecha'=>array(
                'asc'=>'dateA DESC',
                'desc'=>'dateA ASC',
            ),
);
$sort->route = 'myController/myMethod';
$dataProvider->sort = $sort;
$dataProvider->sort->defaultOrder='dateA DESC';
于 2012-06-08T13:19:47.377 に答える
0

これを試して、

$this->widget('zii.widgets.grid.CGridView', array(
  'id' => 'bo-campaigns-grid',
  'dataProvider'=> new CArrayDataProvider($campModel, array(
        'pagination' => array(
            'pageSize' => 10
        )
    )),
  ...
于 2012-06-08T07:57:09.567 に答える
0

CSqlDataProviderも確認できます。必要なSQLの柔軟性が得られるかどうかはわかりませんが、CArrayDataProviderよりも簡単に並べ替えを処理できるはずです。

于 2012-06-09T04:55:40.640 に答える