public function updateGadgetContainer(GadgetContainer $gadgetContainer, array $data) { $gadgets = []; if (array_key_exists('layout', $data)) { $gadgetContainer->setLayout($data['layout']); } if (array_key_exists('gadgets', $data)) { foreach ($data['gadgets'] as $gadget) { $gadgetEntity = null; if ($gadget['id']) { $gadgetEntity = $gadgetContainer->getGadget($gadget['id']); } if (!$gadgetEntity) { $gadgetEntity = new GadgetEntity($gadgetContainer, $gadget['type']); } $gadgetEntity->setColumn($gadget['column']); $gadgetEntity->setPosition($gadget['position']); $this->entityManager->persist($gadgetEntity); $gadgets[] = $gadgetEntity; } } $this->entityManager->flush(); $result = []; foreach ($gadgets as $gadget) { $result[] = $gadget->getId()->toString(); } return $result; }