Очистить Fragment Cache по $id

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Закрыто
prot
Сообщения: 34
Зарегистрирован: 2013.12.26, 21:02
Контактная информация:

Очистить Fragment Cache по $id

Сообщение prot »

Не получается очистить Fragment Cache по его $id.

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

$id = 'top-menu';
if ($this->beginCache($id)) {
    // ...content here
    $this->endCache();
}

Yii::$app->cache->deleteValue($id); // не очищает
 
Посмотрев файлы кэша заметил, что название файла данного кэша не соответствует $id, но является длинным набором символов по виду напоминающим хэш.
arlamar
Сообщения: 39
Зарегистрирован: 2013.07.20, 17:38

Re: Очистить Fragment Cache по $id

Сообщение arlamar »

Тоже была необходимость удалять кеш при определенных действиях и странно, что я не нашел стандартного решения. Может плохо искал... В общем сделал так:

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

\Yii::$app->cache->delete([FragmentCache::className(),$id]); 
Но не уверен, что это правильное решение :)
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: Очистить Fragment Cache по $id

Сообщение zelenin »

arlamar писал(а):Тоже была необходимость удалять кеш при определенных действиях и странно, что я не нашел стандартного решения. Может плохо искал... В общем сделал так:

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

\Yii::$app->cache->delete([FragmentCache::className(),$id]);
Но не уверен, что это правильное решение :)
ну встроенного метода нет, а значит правильное решение. Следует учесть, что ключ при наличии variations вычисляется по другому алгоритму.
prot
Сообщения: 34
Зарегистрирован: 2013.12.26, 21:02
Контактная информация:

Re: Очистить Fragment Cache по $id

Сообщение prot »

Спасибо. Как всегда, помогли.
Закрыто