em = $em; } /** * Gebe alle {@see Article}-Objekte, nach id absteigend sortiert, zurück. * * @return Article[] */ function getArticles(): array { $criteria = $this->em->createSimpleCriteria(Article::getClass()); return $criteria->toQuery()->fetchArray(); /*return $this->em->createNqlCriteria('SELECT a FROM Article a WHERE a.category = :category ORDER BY title ASC') ->toQuery()->fetchArray();*/ } /** * Gebe alle {@see Article} zurück, welche dem übergebenen Kategorienamen entsprechen. * * @return Article[] */ function getArticlesByCategoryName(string $categoryName): array { return $this->em->createSimpleCriteria(Article::class, ['categoryName' => $categoryName]) ->toQuery()->fetchArray(); //return $this->em->createNqlCriteria('SELECT a FROM Article a WHERE a.categoryName = :categoryName', array('categoryName' => $categoryName)) // ->toQuery()->fetchArray(); // return $this->em->find(Article::getClass(), $categoryName); } /** * Gebe den {@see Article} mit der enstprechenden ID zurück. * * @param int $id * @return Article|null */ function getArticleById(int $id): ?Article { return $this->em->find(Article::getClass(), $id); } function saveArticle(Article $newArticle): void { $this->em->persist($newArticle); } function removeArticle(int $articleId): void { $article = $this->getArticleById($articleId); $this->em->remove($article); } }