yii2, как правильно кешировать dataProvider
Как закешировать dataProvider? У меня есть система Сообществ и я хотел бы закешировать результат, а обновлять кеш только тогда когда пользователь создаст новое сообщество.
В моделе community получаю dataProvider
public function userCommunities()
{
$query = self::find()->select(['id', 'img', 'name'])->where(['user_id' => Yii::$app->user->id]);
$queryCount = self::find()->where(['user_id' => Yii::$app->user->id])->count();
$dataProvider = new ActiveDataProvider([
'query' => $query,
'totalCount' => $queryCount,
'pagination' => [
'pageSize' => 10
],
'sort' => [
'defaultOrder' => [
'id' => SORT_DESC
]
],
]);
return $dataProvider;
}
В контроллере вызываю метод для получения dataProvider
$communityModel = new Community();
$comDataProvider = $communityModel->userCommunities();
вывожу данные в View:
<?php
echo ListView::widget([
'dataProvider' => $dataProvider,
'itemOptions' => ['class' => 'item'],
'itemView' => '/community/_indexCommunities',
'summary' => '',
'pager' => [
'class' => ScrollPager::className(),
'noneLeftText' => '',
'spinnerTemplate' => '
<div class="d-flex justify-content-center loader-historis">
<div class="spinner-border" role="status">
<span class="sr-only"></span>
</div>
</div>
',
'enabledExtensions' => [ScrollPager::EXTENSION_SPINNER, ScrollPager::EXTENSION_NONE_LEFT, ScrollPager::EXTENSION_PAGING],
'eventOnScroll' => 'function() {$(\'.ias-trigger a\').trigger(\'click\')}',
]
]);
?>