Clear list cache after clicking on a star item.

This commit was merged in pull request #44.
This commit is contained in:
2026-01-15 10:29:24 +01:00
parent 4cf1c2f90b
commit ebe40785fa

View File

@@ -12,11 +12,18 @@ final class StarController extends BaseController
#[Route('/star/{productId<\d+>}', name: 'app_star')]
public function __invoke(int $productId, Request $request): Response
{
if($this->cache->getItem('list_all')->isHit()) {
$this->cache->deleteItems(['list_all', 'list_promos', 'list_new', 'list_discontinued']);
$this->cache->deleteItems(['list_all', 'list_promos', 'list_new', 'list_discontinued']);
$referer = $request->headers->get('referer');
if (str_contains($referer, '/category/')) {
preg_match('#/category/(.*)#i', $referer, $matches);
$this->cache->deleteItem('list_category_'.urldecode($matches[1]));
}
if (str_contains($referer, '/search?search=')) {
preg_match('#/search\?search=(.*)#i', $referer, $matches);
$this->cache->deleteItem('list_search_'.urldecode($matches[1]));
}
Product::find($productId)->toggleStarred()->save();
return $this->redirect($request->headers->get('referer'));
return $this->redirect($referer);
}
}