/** * POST_SUBMIT event handler for 'childEvents' child field * * @param FormEvent $event */ public function postSubmitChildEvents(FormEvent $event) { /** @var CalendarEvent[] $data */ $data = $event->getForm()->getData(); if ($data && $this->parentEvent) { foreach ($data as $key => $calendarEvent) { $existingEvent = $this->parentEvent->getChildEventByCalendar($calendarEvent->getCalendar()); if ($existingEvent) { $data[$key] = $existingEvent; } } } }
public function testGetChildEventByCalendar() { $firstCalendar = new Calendar(); $firstCalendar->setName('1'); $secondCalendar = new Calendar(); $secondCalendar->setName('2'); $firstEvent = new CalendarEvent(); $firstEvent->setTitle('1')->setCalendar($firstCalendar); $secondEvent = new CalendarEvent(); $secondEvent->setTitle('2')->setCalendar($secondCalendar); $masterEvent = new CalendarEvent(); $masterEvent->addChildEvent($firstEvent)->addChildEvent($secondEvent); $this->assertEquals($firstEvent, $masterEvent->getChildEventByCalendar($firstCalendar)); $this->assertEquals($secondEvent, $masterEvent->getChildEventByCalendar($secondCalendar)); $this->assertNull($masterEvent->getChildEventByCalendar(new Calendar())); }