em = $em; } /** * Gebe alle {@see Article}-Objekte, nach id absteigend sortiert, zurück. * * @return Article[] */ function getArticles(): array { $criteria = $this->em->createNqlCriteria( 'SELECT a FROM Article a ORDER BY a.id DESC'); return $criteria->toQuery()->fetchArray(); } /** * 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); } /** * Gebe alle {@see Article} zurück, welche der übergebenen {@see Category} entsprechen. * * @param Category $category * @return array */ function getArticlesByCategoryName(string $categoryName): array { // $criteria = $this->em->createSimpleCriteria(Article::getClass(), // ['categoryName' => $categoryName]); // return $criteria->toQuery()->fetchArray(); // $criteria = $this->em->createNqlCriteria( // 'SELECT a FROM Article a WHERE a.categoryName = :category', // array('category' => $category)); $criteria = $this->em->createCriteria(); $criteria->select('a') ->from(Article::getClass(),'a') ->where(['a.category.name' => $categoryName]); return $criteria->toQuery()->fetchArray(); } /** * Speichere den {@see Article} in der Datenbank. * * @param Article $article * @return void */ function saveArticle(Article $article): void { $this->em->persist($article); } /** * Lösche den {@see Article} aus der Datenbank. * * @param Article $article * @return void */ function removeArticle(Article $article): void { $this->em->remove($article); } }