public function setArticle(\Newscoop\Entity\Article $article) { $this->article = $article; return $this; }
/** * Save playlist with articles * @param Newscoop\Entity\Playlist $playlist $playlist * @param array $articles */ public function save(Playlist $playlist = null, $articles = null) { $em = $this->getEntityManager(); try { $em->getConnection()->beginTransaction(); $em->persist($playlist); if (is_null($playlist->getId())) { $em->flush(); } $query = $em->createQuery("DELETE FROM Newscoop\\Entity\\PlaylistArticle pa WHERE pa.playlist = ?1"); $query->setParameter(1, $playlist); $query->execute(); if (!is_null($articles) && is_array($articles)) { $ar = $this->getEntityManager()->getRepository('Newscoop\\Entity\\Article'); foreach ($articles as $articleId) { $article = new PlaylistArticle(); $article->setPlaylist($playlist); if (($a = current($ar->findBy(array("number" => $articleId)))) instanceof \Newscoop\Entity\Article) { $article->setArticle($a); } $em->persist($article); } } $em->flush(); $em->getConnection()->commit(); } catch (\Exception $e) { $em->getConnection()->rollback(); $em->close(); return $e; } return $playlist; }