/** * @param Article $articleEntity * @return \Blog\Service\ArticleService */ public function createArticle(array $data) { /** Le billet **/ $articleEntity = new Article(); $em = $this->getServiceLocator()->get('Doctrine\\ORM\\EntityManager'); $category = $em->find('Blog\\Model\\Entity\\Category', $data['category']); // Données du formulaire $articleEntity->setTitre($data['titre']); $articleEntity->setContenu($data['content']); $articleEntity->setCategory($category); $articleEntity->setTags($data['tags']); // Données à récupérer $articleEntity->setAuthor($this->getServiceLocator()->get('BlogUserService')->getCurrentUserEntity()); // Création du billet $newArticle = $this->getServiceLocator()->get('ArticleRepository')->createArticleEntity($articleEntity); /** Les tags **/ $tags = explode(' ', $data['tags']); foreach ($tags as $t) { $tagEntity = new Tag(); $tagEntity->setArticle($newArticle); $tagEntity->setName($t); $this->getServiceLocator()->get('TagRepository')->createTagEntity($tagEntity); } return $this; }
/** * {@inheritDoc} */ public function setCategory($category) { $this->__initializer__ && $this->__initializer__->__invoke($this, 'setCategory', array($category)); return parent::setCategory($category); }