diff --git a/src/Controller/StarController.php b/src/Controller/StarController.php index c56d797..af63187 100644 --- a/src/Controller/StarController.php +++ b/src/Controller/StarController.php @@ -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); } }