70 public function hydrate(array $tableaAssoc): ?playlist
72 if (empty($tableaAssoc)) {
77 $playlist->setIdPlaylist(isset($tableaAssoc[
'idPlaylist']) ? (
int)$tableaAssoc[
'idPlaylist'] :
null);
78 $playlist->setNomPlaylist($tableaAssoc[
'nomPlaylist'] ??
null);
79 $playlist->setEstPubliquePlaylist($tableaAssoc[
'estPubliquePlaylist'] ??
null);
82 $playlist->setDateCreationPlaylist(
83 !empty($tableaAssoc[
'dateCreationPlaylist']) ?
new DateTime($tableaAssoc[
'dateCreationPlaylist']) : null
86 $playlist->setDateDerniereModification(
87 !empty($tableaAssoc[
'dateDerniereModification']) ?
new DateTime($tableaAssoc[
'dateDerniereModification']) : null
90 $playlist->setEmailProprietaire($tableaAssoc[
'emailProprietaire'] ??
null);
111 JOIN chansonPlaylist cp ON c.idChanson = cp.idChanson
112 WHERE cp.idPlaylist = :idPlaylist
113 ORDER BY cp.positionChanson ASC
116 $stmt = $this->pdo->prepare($sql);
117 $stmt->execute([
':idPlaylist' => $idPlaylist]);
118 $results = $stmt->fetchAll(PDO::FETCH_ASSOC);
121 foreach ($results as $row) {
123 $chanson = $chansonDAO->hydrate($row);
126 if ($emailUtilisateur) {
127 $sqlLike =
"SELECT 1 FROM likeChanson WHERE idChanson = :idChanson AND emailUtilisateur = :emailUtilisateur LIMIT 1";
128 $stmtLike = $this->pdo->prepare($sqlLike);
130 ':idChanson' => $chanson->getIdChanson(),
131 ':emailUtilisateur' => $emailUtilisateur
133 $isLiked = $stmtLike->fetchColumn() ? true :
false;
135 $chanson->setIsLiked($isLiked);
136 $chansons[] = $chanson;