public function setArticleWebcode(Entity\Article $article, $webcode = null) { if (empty($webcode)) { $webcode = $this->generateWebcode(); } else { if (!$this->isUnique($webcode)) { throw new \InvalidArgumentException("Webcode '{$webcode}' is in use."); } } $webcode = new Entity\Webcode($webcode, $article); $article->setWebcode($webcode); $this->em->persist($webcode); $this->em->flush(); }