Я недавно наткнулся на проблему.У меня есть несколько частичных, которые находятся в нескольких действиях и имеют разные способы отображения данных, поэтому я использовал контекстный параметр в cache.yml как таковой:
_list:
enabled: true
contextual: true
Теперь мне нужно было удалить частичный кеш, когда данныебыл обновлен, что обычно довольно просто при работе с неконтекстуальным частичным кешем или кешем действий.
Однако, когда я пытаюсь удалить этот кеш, я получаю только нулевые возвращаемые значения, и кеш не удаляется.Например:
$uri = '@sf_cache_partial?module=comment&action=_list&sf_cache_key='.$id;
$cache_manager = $this->getContext()->getViewCacheManager();
$cache_manager->has($uri) // return true
$cache_manager->remove($uri) // return null
$cache_manager->has($uri) // return true, cache is still there
Я попытался поиграть с четвертым параметром sfViewCacheManager :: remove, который является контекстом, таким как:
$context = 'space/show/sf_culture/fr/slug/'.$slug.'/tab/news/comment/_list/'.$id;
$cache_manager->remove($uri, '', '', $context); // return null
Кто-нибудь знает, как это сделать?Я в отчаянии: P
Спасибо.