/**
  * @Security("is_granted('IS_AUTHENTICATED_REMEMBERED')")
  */
 public function favAction($slug, Request $request)
 {
     if ($request->isXmlHttpRequest()) {
         $em = $this->getDoctrine()->getManager();
         $advert = $em->getRepository('FBAdvertBundle:Advert')->findOneBySlug($slug);
         if ($advert === null) {
             return new JsonResponse();
         }
         $favorite = $em->getRepository('FBAdvertBundle:Favorite')->getFavorite($this->getUser(), $advert);
         if ($favorite === null) {
             $favorite = new Favorite();
             $favorite->setUser($this->getUser());
             $favorite->setAdvert($advert);
             $em->persist($favorite);
             $em->flush();
             return new JsonResponse(true);
         } else {
             $em->remove($favorite);
             $em->flush();
             return new JsonResponse(false);
         }
     }
     return $this->redirect($this->generateUrl('fb_advert_view', array('slug' => $slug)));
 }
Exemplo n.º 2
0
 /**
  * Add favorites
  *
  * @param \FB\AdvertBundle\Entity\Favorite $favorites
  * @return Advert
  */
 public function addFavorite(\FB\AdvertBundle\Entity\Favorite $favorites)
 {
     $this->favorites[] = $favorites;
     $favorites->setAdvert($this);
     return $this;
 }