Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [SF2][SF][Symfony] EventListener - metoda postUpdate, Nie działa listner po update danych
damianooo
post 12.02.2017, 22:08:51
Post #1





Grupa: Zarejestrowani
Postów: 496
Pomógł: 2
Dołączył: 15.07.2011
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Zarejestrowałem sobie serwis i stworzyłem EventListenera z metodą postUpdate, która jak dobrze rozumiem działa w momencie gdy robiony jest Update na danej entity.

Zrobiłem więc stronę, na której edytuję wybrany mecz, wpisuję wynik i klikam przycisk "Zapisz" .
Dane w bazie dla entity Meet zostają zaktualizowane , jednak Event Listener wygląda na to że nie zadziałał ponieważ ani w logach nie mam info o żadnych błędach , ani w bazie danych w entity Type, której pole NumberOfPoints miało być zaktualizowane nie jest wypełnione.

services.yml

  1. service:
  2. ....
  3. result_listener:
  4. class: AppBundle\EventListener\ResultListener
  5. tags:
  6. - { name: doctrine.event_listener, event: postUpdate }


AppBundle\EventListener\ResultListener.php

  1. namespace AppBundle\EventListener;
  2. use Doctrine\ORM\Event\LifecycleEventArgs;
  3.  
  4. class ResultListener {
  5. public function postUpdate(LifecycleEventArgs $args)
  6. {
  7. $entity = $args->getEntity();
  8. $em = $args->getEntityManager();
  9.  
  10. if ($entity instanceof Meet) {
  11. $meet_id = $entity->getId();
  12. $typeRepo = $em->getRepository('AppBundle:Type');
  13. $types = $typeRepo->findByMeetId($meet_id);
  14.  
  15. foreach ($types as $type){
  16. $type->setNumberOfPoints(4);
  17. $em->persist($type);
  18. }
  19.  
  20. $em->flush();
  21. }
  22. }
  23. }


Ten post edytował damianooo 12.02.2017, 22:13:30
Go to the top of the page
+Quote Post
nospor
post 12.02.2017, 22:41:43
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




  1. public function postUpdate(LifecycleEventArgs $args)
  2. {
  3. die('Jak mnie widzisz to jednak dzialam');
  4. //reszta kodu
  5. //.......


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
damianooo
post 12.02.2017, 22:45:14
Post #3





Grupa: Zarejestrowani
Postów: 496
Pomógł: 2
Dołączył: 15.07.2011
Skąd: Katowice

Ostrzeżenie: (0%)
-----


tak tak zauważyłem to że w tej linii kodu działa zarówno die jak var_dump i exit....

Problem ze zdebugowaniem pojawia się po IFie a więc w czasie Update w bazie...

Rozumiem jednak że "na bank" program wchodzi w tym momencie w IFa ? smile.gif
Go to the top of the page
+Quote Post
nospor
post 12.02.2017, 22:55:05
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Nigdzie nie masz
use .....Meet

WIec Meet jest nieokreslone


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
damianooo
post 13.02.2017, 21:31:45
Post #5





Grupa: Zarejestrowani
Postów: 496
Pomógł: 2
Dołączył: 15.07.2011
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Zgadza się, brakowało użycia klasy Meet.
Poza tym źle pobierałem obiekt klasy Type.

Ma być tak:

  1. namespace AppBundle\EventListener;
  2.  
  3. use Doctrine\ORM\Event\LifecycleEventArgs;
  4. use AppBundle\Entity\Meet;
  5.  
  6. class ResultListener {
  7. public function postUpdate(LifecycleEventArgs $args)
  8. {
  9. $entity = $args->getEntity();
  10. $em = $args->getEntityManager();
  11.  
  12. if ($entity instanceof Meet) {
  13. $meet_id = $entity->getId();
  14. $typeRepo = $em->getRepository('AppBundle:Type');
  15. $types = $typeRepo->findByMeet($meet_id);
  16.  
  17. foreach ($types as $type){
  18. $type->setNumberOfPoints(4);
  19. $em->persist($type);
  20. }
  21. $em->flush();
  22. }
  23. }
  24. }


Działa to pięknie ! O to mi właśnie chodziło !
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 12:22