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(); } /** * Gebe alle {@see Article} zurück, welche dem übergebenen Kategorienamen entsprechen. * * @return Article[] */ function getArticlesByCategoryName(string $categoryName): array { return $this->em->createSimpleCriteria(Article::class, ['category' => $categoryName]) ->toQuery()->fetchArray(); return $this->em->createNqlCriteria('SELECT a FROM Article a WHERE a.category = :category') ->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) { $tx = $this->tm->createTransaction(); $this->em->persist($newArticle); $tx->commit(); } function removeArticle(int $articleId): void { $article = $this->getArticleById($articleId); $this->em->remove($article); } }