Yii で CActiveDataProvider を再ソートする方法を探しています。
現在、データ プロバイダーを使用して、並べ替えおよびページ分割されたデータを取得しています。
次に、特定のフィールドのデータを調整する foreach ループを使用してループしています。次に、新しく調整されたデータに基づいてデータを再ソートする必要があります。
afterFind を使用してモデル内のデータを並べ替えることができません。別の DB (MySQL) にクエリを実行して計算値を計算する必要があり、処理中の切り替えが気に入らないようです。
データの調整中にコントロールをループに入れない限り、返されるデータをページ分割する明確な方法がないため、CArrayDataProvider を使用したくありませんが、200 レコードなど、どれだけのデータが返されるかわかりません。 、しかし、ディスプレイの 20 だけを調整することは直感に反するようです。
これはすべて CGridView ウィジェットにプッシュされます。
たとえば、下の配列を昇順で再調整する必要があります。
$dataProvider = new CActiveDataProvider( blah );
foreach ( $dataProvider->getData() as $data ) {
$data->Score += SomeModel::model()->findByPk(1)->NewScore;
}
array(
'Score' => 7
),
array(
'Score' => 6
)
$this->render('blah', array('data' => $dataProvider);