Не работает сброс кеша DbDependency
Добавлено: 2019.04.23, 22:29
Вообщем такая история, решил потестить кеширование. Создал таблицу в базе сделал поле updated_at и TimestampBehavior нормально его обновляю. Сделал код:
Решил что по обновлению записи надо сбрасывать кеш, задал зависимость как в доке.
Дальше решил что буду кешировать на час, обьявил переменную:
Дальше так как сайт мультиязычный решил вариации кеша прикрутить:
Ну и собсвенно передал это все в метод кеширования:
Все как закешировалось так и осталось. Проблема скорее всего в $dependency потому что постоянно возвращает false;
Что поле обновляется в базе это точно. Но почему не срабатывает сброс вообще понять не могу. Кто что скажет?
Решил что по обновлению записи надо сбрасывать кеш, задал зависимость как в доке.
Код: Выделить всё
$dependency = new DbDependency([
'sql' => 'SELECT MAX(updated_at) FROM mm_selling_page',
]);
Код: Выделить всё
$duration = 3600;
Код: Выделить всё
$variations = Yii::$app->language;
Код: Выделить всё
<?php if ($this->beginCache($id, ['duration' => $duration, 'dependency' => $dependency, 'variations' => [$variations]])):?>
Генерируемый контент....
<?php $this->endCache(); endif; ?>
Код: Выделить всё
object(yii\caching\DbDependency)#221 (5) {
["db"]=>
string(2) "db"
["sql"]=>
string(43) "SELECT MAX(updated_at) FROM mm_selling_page"
["params"]=>
array(0) {
}
["data"]=>
NULL
["reusable"]=>
bool(false)
}