Не работает сброс кеша DbDependency

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
quasar
Сообщения: 107
Зарегистрирован: 2014.10.22, 09:27

Не работает сброс кеша DbDependency

Сообщение quasar » 2019.04.23, 22:29

Вообщем такая история, решил потестить кеширование. Создал таблицу в базе сделал поле updated_at и TimestampBehavior нормально его обновляю. Сделал код:
Решил что по обновлению записи надо сбрасывать кеш, задал зависимость как в доке.

Код: Выделить всё

$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; ?>
Все как закешировалось так и осталось. Проблема скорее всего в $dependency потому что постоянно возвращает false;

Код: Выделить всё

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)
}
Что поле обновляется в базе это точно. Но почему не срабатывает сброс вообще понять не могу. Кто что скажет?

Ответить