/** * Lädt alle Kommentare eines Autors. * * @param string $author E-Mail-Adresse des Autors * * @return Comment[] */ public function getCommentsByAuthor($author) { try { $db = $this->getConnection(); $sql = " SELECT id, article_id, CASE WHEN parent_comment_id IS NULL THEN NULL WHEN parent_comment_id = '' THEN NULL WHEN parent_comment_id = 0 THEN NULL ELSE parent_comment_id END AS parent_comment_id, author, content, created FROM comments WHERE author = :author ORDER BY created DESC "; $command = $db->prepare($sql); $command->execute([ ":author" => $author ]); $comments = []; while ($row = $command->fetch(PDO::FETCH_ASSOC)) { $parentCommentId = null; if ( isset($row["parent_comment_id"]) && $row["parent_comment_id"] !== null && $row["parent_comment_id"] !== "" && intval($row["parent_comment_id"]) !== 0 ) { $parentCommentId = intval($row["parent_comment_id"]); } $comments[] = new Comment( intval($row["id"]), intval($row["article_id"]), $parentCommentId, $row["author"], $row["content"], $row["created"] ); } return $comments; } catch (PDOException $e) { throw new RuntimeException( "Kommentare konnten nicht geladen werden." ); } }