/** * Edit article * * @return ViewModel */ public function editAction() { $em = $this->getEntityManager(); $id = (int) $this->params()->fromRoute('id', 0); if (!$id) { return $this->redirect()->toRoute('blog', array('action' => 'add')); } try { $article = $em->getRepository('Blog\\Entity\\Article')->findOneById($id); } catch (\Exception $e) { return $this->redirect()->toRoute('blog', array('action' => 'add')); } $form = new ArticleForm($em); $form->bind($article); $request = $this->getRequest(); if ($request->isPost()) { $form->setInputFilter($article->getInputFilter()); $form->setData($request->getPost()); if ($form->isValid()) { $author = $em->getRepository('User\\Entity\\User')->findOneById($article->getAuthor()); $article->setAuthor($author); $em->persist($article); $em->flush(); return $this->redirect()->toRoute('blog'); } } return new ViewModel(array('form' => $form)); }
/** * @see \Zend\ServiceManager\FactoryInterface::createService() * @param \Zend\ServiceManager\ServiceLocatorInterface $serviceLocator * @return \Blog\Form\ArticleForm */ public function createService(ServiceLocatorInterface $serviceLocator) { $entityManager = $serviceLocator->get('Doctrine\\ORM\\EntityManager'); $form = new ArticleForm($entityManager); return $form->setInputFilter(new ArticleInputFilter()); }