Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SF][SF2][Symfony2]Nie działa flush przy dodawaniu nowego rekordu
Forum PHP.pl > Forum > PHP > Frameworki
Crash89
Nie chce zadziałać flush, w ogóle zawiesza mi całego xamppa i muszę go resetować żeby znów strona działała.
Nie wiem czemu, nie zwraca żadnego komunikatu, do momentu wywołania flush wszystko działa dobrze.
Oto kod który to wywołuje:

  1. public function rateAction(Request $request)
  2. {
  3. $productId = $request->get('product_id');
  4. $rate = $request->get('rate');
  5.  
  6. $em = $this->getDoctrine()->getManager();
  7.  
  8. $rateM= new RateM($em);
  9. if($rateM->addRate($productId, $rate, $this->get('security.token_storage')->getToken()->getUser()))
  10. {
  11. $count = $em->getRepository('AppBundle:Rate')->getCountRate($productId);
  12. $avgRate = $em->getRepository('AppBundle:Rate')->getAvgRate($productId);
  13. var_dump('success');
  14. die();
  15. $response = new JsonResponse();
  16. $response->setData(array('avg' => $avgRate, 'count' => $count));
  17. return $response;
  18.  
  19. }else{
  20. var_dump('sfijasf');
  21. die();
  22. $response = new JsonResponse();
  23. $response->setData(array('error' => true));
  24. return $response;
  25. }
  26.  
  27.  
  28.  
  29. }
  30.  


I w klasie RateM:

  1. public function addRate($productId,$rate,$user)
  2. {
  3. $rate = new Rate();
  4.  
  5. $rate->setProduct($this->em->getRepository('AppBundle:Product')->findById($productId)[0]);
  6. $rate->setRate($rate);
  7. $rate->setUser($user);
  8. $this->em->persist($rate);
  9. try{
  10. $this->em->flush(); // <- tu jest bł±d jaki¶
  11. }catch(\Exception $e)
  12. {
  13. var_dump($e->getMessage());
  14. die();
  15. }
  16. var_dump($rate);
  17. die();
  18.  
  19.  
  20.  
  21. return true;
  22. }


Blokuje mi to cał± prace, chcę stworzyć system gwiazdkowy do oceniania obiektu.
ohm
  1. $rate = new Rate();

i po chwili
  1. $rate->setRate($rate);

to w jakim¶ konkretnym celu jest? wink.gif

btw zamiast
  1. ->findById($productId)[0]

robisz po prostu
  1. ->findOneById($productId)


a jeszcze lepiej jak by¶ robił
  1. ->getReference("AppBundle:Product", $productId)
Crash89
Cytat(ohm @ 22.11.2016, 18:56:51 ) *
  1. $rate = new Rate();

i po chwili
  1. $rate->setRate($rate);

to w jakim¶ konkretnym celu jest? wink.gif

btw zamiast
  1. ->findById($productId)[0]

robisz po prostu
  1. ->findOneById($productId)


a jeszcze lepiej jak by¶ robił
  1. ->getReference("AppBundle:Product", $productId)


Tak samo nazwałem pole w tabeli, co jej nazwa. Może tutaj jest problem?
A i dzięki za wskazówkę z findOneById;

Już wiem w czym problem, cały dzien się na to patrzyłem i nie zauważyłem że do Pola rate dodaje obiekt do którego to ma być wstawione;
To jest wersja lo-fi głównej zawarto¶ci. Aby zobaczyć pełn± wersję z większ± zawarto¶ci±, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.