Очистить кэш одного результата в 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, у меня нет идентификатора кэша результатов? Есть ли решение, чтобы удалить конкретный результат? Может быть, у флеш слушателя?

0 ответов

Другие вопросы по тегам