public function editAction() { $forrest = new Service\BreadcrumbService(); if (!$forrest->exists('user')) { $forrest->set('user', 'admin/user'); } $breadcrumb = $forrest->get('user'); $id = (int) $this->params()->fromRoute('id', 0); if (!$id) { return $this->redirect()->toRoute('admin/user', array('action' => 'add')); } $em = $this->getServiceLocator()->get('Doctrine\\ORM\\EntityManager'); $user = $em->getRepository("ErsBase\\Entity\\User")->findOneBy(array('id' => $id)); $form = new Form\User(); $form->bind($user); $form->get('submit')->setAttribute('value', 'Edit'); $form->get('Country_id')->setValueOptions($this->getCountryOptions()); $request = $this->getRequest(); if ($request->isPost()) { $inputFilter = $this->getServiceLocator()->get('Admin\\InputFilter\\User'); #$form->setInputFilter($inputFilter->getInputFilter()); $form->setData($request->getPost()); if ($form->isValid()) { $user = $form->getData(); if ($user->getEmail() == '') { $user->setEmail(NULL); } if ($user->getCountryId() == 0) { $user->setCountry(null); $user->setCountryId(null); } $em->persist($user); $em->flush(); return $this->redirect()->toRoute($breadcrumb->route, $breadcrumb->params, $breadcrumb->options); } else { $logger = $this->getServiceLocator()->get('Logger'); $logger->warn($form->getMessages()); } } return new ViewModel(array('id' => $id, 'form' => $form, 'breadcrumb' => $breadcrumb)); }