Очистить кэш одного результата в symfony2 с помощью APCu
Скажем, у меня есть простое действие
/**
* @Route("/{record}", name="record_view")
* @ParamConverter("record", class="AcmeDemoBundle:Record", options={"id" : "record"})
* @param Request $request
* @param Record $record
* @return Response
*/
public function recordViewAction(Request $request, Record $record)
{
return new Response($record->getContent());
}
и в другом действии, которое я обновляю содержимое записи (не с формами)
/**
* @Route("/edit/{record}", name="record_edit")
* @ParamConverter("record", class="AcmeDemoBundle:Record", options={"id" : "record"})
* @param Request $request
* @param Record $record
* @return Response
*/
public function recordEditAction(Request $request, Record $record)
{
$orm = $this->getDoctrine()->getManager();
$record->setContent('lorem ipsum');
$orm->persist($record);
$orm->flush();
}
Проблема в том, что когда вызывается функция редактирования, у действия просмотра есть старое содержимое. Я использую APCu, поэтому мой конфиг выглядит так:
doctrine:
orm:
metadata_cache_driver: apcu
result_cache_driver: apcu
query_cache_driver: apcu
Я знаю, что могу удалить определенный / весь кэш, но в конкретном кеше, основываясь на аннотации paramConverter, у меня нет идентификатора кэша результатов? Есть ли решение, чтобы удалить конкретный результат? Может быть, у флеш слушателя?