public function batchActionCacheClear(ProxyQueryInterface $selectedModelQuery)
{
if ($this->admin->isGranted('PUBLISH') === false) {
throw new AccessDeniedException();
}
$selectedModels = $selectedModelQuery->execute();
try {
foreach ($selectedModels as $selectedModel) {
/** @var \Networking\InitCmsBundle\Lib\PhpCacheInterface $phpCache */
$phpCache = $this->get('networking_init_cms.lib.php_cache');
if ($phpCache->isActive()) {
/** @var PageInterface $selectedModel */
$cacheKey = $selectedModel->getLocale() . $selectedModel->getFullPath();
$phpCache->delete($cacheKey);
}
}
} catch (\Exception $e) {
$this->get('session')->getFlashBag()->add('sonata_flash_error', 'flash_batch_cache_clear_error');
return new RedirectResponse($this->admin->generateUrl('list', $this->admin->getFilterParameters()));
}
$this->get('session')->getFlashBag()->add('sonata_flash_success', 'flash_batch_cache_clear_success');
return new RedirectResponse($this->admin->generateUrl('list', $this->admin->getFilterParameters()));
}