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;
 }
Exemplo n.º 2
0
 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;
 }