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
service: .... result_listener: class: AppBundle\EventListener\ResultListener tags: - { name: doctrine.event_listener, event: postUpdate }
AppBundle\EventListener\ResultListener.php
namespace AppBundle\EventListener; use Doctrine\ORM\Event\LifecycleEventArgs; class ResultListener { public function postUpdate(LifecycleEventArgs $args) { $entity = $args->getEntity(); $em = $args->getEntityManager(); if ($entity instanceof Meet) { $meet_id = $entity->getId(); $typeRepo = $em->getRepository('AppBundle:Type'); $types = $typeRepo->findByMeetId($meet_id); foreach ($types as $type){ $type->setNumberOfPoints(4); $em->persist($type); } $em->flush(); } } }