public function addAudioToPlaylistAction(Request $request) { if ($request->isXmlHttpRequest()) { $data = $request->request; $audios = $data->get('audios'); $playlist_title = $request->request->get('playlist'); $em = $this->container->get('doctrine')->getEntityManager(); $audio_repo = $repo = $em->getRepository('LCVPlaylistBundle:AudioFile'); $playlist_audio_repo = $repo = $em->getRepository('LCVPlaylistBundle:PlaylistAudio'); $playlist_repo = $em->getRepository('LCVPlaylistBundle:Playlist'); $playlist = $playlist_repo->findOneByTitle($playlist_title); $success = array(); $errors = array(); foreach ($audios as $title => $audio) { if ($playlist_repo->titleAvailable($playlist->getId(), $title)) { $audioFile = $audio_repo->findOneById($audio); $playlist_audio = new PlaylistAudio(); $playlist_audio->setAudio($audioFile); $playlist_audio->setPlaylist($playlist); $playlist_audio->setSortOrder(0); $playlist_audio->setTitle($title); $em->persist($playlist_audio); $data->add(array("success" => $success)); } else { $errors[] = $title . " existe déjà dans la playlist et n'a pas été ajouté."; } } $em->flush(); $success[] = "L'ajout des morceaux dans " . $playlist_title . " à bien été pris en compte."; $data->add(array("success" => $success)); $data->add(array("errors" => $errors)); $data = $this->container->get('serializer')->serialize($data, 'json'); return new JsonResponse(array('data' => $data)); } else { return $this->indexAction($request); } }
/** * Add playlist_audios * * @param \LCV\PlaylistBundle\Entity\PlaylistAudio $playlistAudios * @return AudioFile */ public function addPlaylistAudio(\LCV\PlaylistBundle\Entity\PlaylistAudio $playlistAudios) { $this->playlist_audios[] = $playlistAudios; $playlistAudios->setAudio($this); return $this; }