是否可以防止计入数据提供者,或至少缓存结果?
这是我当前的代码,每次调用都完成计数:
$dataProvider = new CActiveDataProvider(PProjectJob::model()->cache(3600, null, 2), array(
'criteria' => $searchForm->search(),
'pagination' => array(
'pageSize' => Yii::app()->user->getState('pageSize', Yii::app()->params['defaultPageSize']),
),
'sort' => RedeliverySearchForm::getSort(),
'totalItemCount' => null
));
初始查询始终是相同的,并且将计数结果缓存24小时将对性能产生很大影响。
答案 0 :(得分:2)
您可以将@media (min-width: 992px)
.modal-lg {
max-width: auto !important;
}
@media (min-width: 576px)
.modal-dialog {
max-width: auto !important;
}
值传递到CActiveDataProvider构造函数中,该构造函数在当前代码中以'totalItemCount'
的形式传入
数据提供者仅在其null
为'totalItemCount'
时才运行计数查询
您可以根据null
标准,自己计算或从缓存中获取计数结果,并将其传递给
第二个选项是创建您自己的CActiveDataProvider扩展,覆盖$searchForm->search()
,并为当前运行calculateTotalItemCount()
查询的计数结果提供缓存选项