set playlist.
public setPlaylist ( |
||
$playlist | ||
return | Newscoop\Entity\PlaylistArticle |
/** * 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; }
public function setPlaylist(\Newscoop\Entity\Playlist $playlist) { $this->__load(); return parent::setPlaylist($playlist); }