/** * Hydrate an array of data onto an entity using a form * * @param AbstractEntity $entity * @param array $values * @param Form $form * @return AbstractEntity */ private function hydrate(AbstractEntity $entity, array $values, Form $form) { $form->setObject($entity); if ($form->getBaseFieldset()) { $form->getBaseFieldset()->setObject($entity); } $form->setData($values); if (!$form->isValid()) { return $this->setErrorMessages($form->getMessages()); } $result = $form->getData(); if (!$result instanceof AbstractEntity) { throw new RuntimeException('Unable to retrieve entity from Form'); } return $result; }