我正在寻找一种在 Yii 中重新排序 CActiveDataProvider 的方法。
目前我正在使用数据提供者来获取排序和分页的数据。
然后我使用 foreach 循环调整特定字段的数据来循环它,现在我需要根据新的调整数据重新排序。
我无法使用 afterFind 对模型中的数据进行排序,因为我需要查询另一个数据库(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);