Yii1-防止分页(dataProvider)计数或缓存它

时间:2019-01-16 14:07:59

标签: yii yii1.x

是否可以防止计入数据提供者,或至少缓存结果?

这是我当前的代码,每次调用都完成计数:

$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小时将对性能产生很大影响。

1 个答案:

答案 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()查询的计数结果提供缓存选项

相关问题