Добрый день! Проблема такая. Нужно сохранить страницу/компонент в кэш с пагинацией этой страницы.
Доки читал, все что там было перепробовал, к сожалению получается не тот результат, который нужно.
В общем, в контроллер добавляю behaviors,
Кэширование страниц
public function behaviors()
{
return [
'pageCache' =>
[
'class' => 'yii\filters\PageCache',
'only' => ['single'],
'duration' => 6000,
'variations' => [
[Yii::$app->request->get('page')],
],
'dependency' => [
'class' => DbDependency::class,
'sql' => 'SELECT COUNT(*) FROM article',
],
],
];
}
все отлично работает, до момента, когда нужно воспользоваться аутентификацией пользователя. В данном виде кэширования сохраняется вся страница., вместе с кнопками входа/выхода. И когда я захожу под логином на сайт, я вроде зашел, по дебагеру, но в плане вида кнопок ничего не меняется, когда должно переключиться на ник человека и кнопку выйти, так как эта страница вся в кеше и он отдает последнее что туда добавилось.
Пробовал и остальные виды кэша, там все хорошо, аутентификацией пользователя отлично работает, обновление кэша тоже настроил, работает, но вот косяк в том, что пагинация не сохраняется от слова совсем.
Кэширование фрагментов
<?if($this->beginCache('artIndex', ['dependency' => $dependency])):?>
<?foreach ($articles as $article):?>
<div class="col-md-6">
<?= Html::a(Html::img("@web/".$article->image,
['alt' => 'картинка']) .
"<div class='blog-content-body'>
<div class='post-meta'>
<span class='category'>{$article->category->title}</span>
<span class='mr-2'>{$article->dateSave}</span> •
<span class='ml-2'><span class='fa fa-comments'></span> 3</span>
</div>
<h2>{$article->title}</h2>
</div>",
[
// 'article/single', 'id' => $article->id
'article/single', 'slug' => $article->slug
],
[
'class'=>'blog-entry element-animate', 'data-animate-effect'=>'fadeIn'
]
)
?>
</div>
<?endforeach;?>
<?$this->endCache()?>
<?endif;?>
В модели артайкл идет
обновление кэша
public function behaviors()
{
return [
'CachedBehavior' => [
'class' => CachedBehavior::class,
'cache_key' => [
'artIndex',
],
]
];
}
Все тоже самое происходит и в
Кэширование данных
ПРосто в какой то тупик меня загнали))) Конечно можно отказаться от авторизации, она нужна только для того, чтобы люди могли писать комменты и подключить готовые чаты, но что то мне подсказывает, потом будет проблема с кэшем с этим чатом... Подскажите как правильно кэшировать данные со страницы с пагинацией