/** * treatArticleBeforePersist * Article treatments common to add or edit article * @param \Gore\BlogBundle\Entity\Article $article * @return \Gore\BlogBundle\Entity\Article */ private function treatArticleBeforePersist(Article $article) { $em = $this->getDoctrine()->getManager(); // Traitement des valeurs par défaut $mgr = $this->get('gore_blog.blog_manager'); foreach ($article->getKeywords() as $keyword) { $checkResult = $mgr->checkIfKeywordExists($keyword, true); if ($checkResult instanceof Keyword) { // if the keywords DOES exist in database $article->removeKeyword($keyword); $article->addKeyword($checkResult); } else { $em->persist($keyword); } $keyword->setCategory(false); } return $article; }