Yii1-防止分页(数据提供程序)计数或缓存它
是否可以防止在数据提供程序中计数,或者至少缓存结果 这是我当前的代码,每次通话都会进行计数:Yii1-防止分页(数据提供程序)计数或缓存它,yii,yii1.x,Yii,Yii1.x,是否可以防止在数据提供程序中计数,或者至少缓存结果 这是我当前的代码,每次通话都会进行计数: $dataProvider = new CActiveDataProvider(PProjectJob::model()->cache(3600, null, 2), array( 'criteria' => $searchForm->search(), 'pagination' => array(
$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小时将对性能产生很大影响 您可以将
'totalItemCount'
值传递到构造函数中,该值在当前代码中作为null
传递
如果数据提供程序的'totalItemCount'
为null
您可以根据$searchForm->search()
标准,自己计算或从缓存中提取计数结果,并将其传递给用户
第二个选项是创建您自己的CActiveDataProvider扩展,覆盖
calculateTotalItemCount()
,并为当前运行count()
查询的计数结果提供缓存选项,您可以将'totalItemCount'
值传递到构造函数中,您在当前代码中已将其作为null
传入
如果数据提供程序的'totalItemCount'
为null
您可以根据$searchForm->search()
标准,自己计算或从缓存中提取计数结果,并将其传递给用户
第二个选项是创建自己的CActiveDataProvider扩展,覆盖CalculateToTalitItemCount()
,并为当前运行count()
查询的计数结果提供缓存选项