protected function editEntry($id, $data = []) { if (!$data) { return false; } $form = $this->getForm(); $form->remove('csrf'); if ($this->uniqueField !== null) { $validator = new NoOtherEntityExists(['object_repository' => $this->getEntityManager()->getRepository($this->getEntityClass()), 'fields' => $this->uniqueField, 'id' => $id]); if ($this->uniqueEntityMessage !== null) { $validator->setMessage($this->uniqueEntityMessage, 'objectFound'); } $form->getInputFilter()->get($this->uniqueField)->getValidatorChain()->attach($validator); } $form->add(['type' => 'Zend\\Form\\Element\\Hidden', 'name' => 'id', 'attributes' => ['id' => 'id', 'value' => $id], 'filters' => [['name' => 'Int']], 'validators' => [['name' => 'Digits']]]); $em = $this->getEntityManager(); $objRepository = $em->getRepository($this->getEntityClass()); $entity = $objRepository->find($id); $form->bind($entity); $form->setData($data); $savedEntity = $this->getEntityService()->save($form, $entity); if ($savedEntity && $savedEntity instanceof Account) { $name = $savedEntity->getName(); $this->createServiceEvent()->setEntityId($id)->setEntityClass($this->getEntityClass())->setDescription("Account Edited")->setMessage("Account : " . $name . " was edited."); $this->logEvent("EditAction.post"); } return $savedEntity ? true : false; }
protected function getEditForm() { $form = $this->getForm(); if ($this->uniqueField !== null) { $validator = new NoOtherEntityExists(['object_repository' => $this->getEntityManager()->getRepository($this->getEntityClass()), 'fields' => $this->uniqueField, 'id' => $this->getEvent()->getRouteMatch()->getParam('id', 0)]); if ($this->uniqueEntityMessage !== null) { $validator->setMessage($this->uniqueEntityMessage, 'objectFound'); } $form->getInputFilter()->get($this->uniqueField)->getValidatorChain()->attach($validator); } return $form; }