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"); 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::getClass(), ['categoryName' => $categoryName]) ->toQuery()->fetchArray(); // // $criteria = $this->em->createCriteria(); // $criteria->select('a') // ->from(Article::getClass(), 'a') // ->where()->match('a.categoryName', '=', $categoryName); // return $criteria->toQuery()->fetchArray(); // $criteria = $this->em->createNqlCriteria( // "SELECT a FROM Article a WHERE a.category_name = :category_name", // array("category_name" => $categoryName)); // 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); } /** * Speichere den {@see Article}. * * @param Article $article * @return null */ function saveArticle(Article $article){ $this->em->persist($article); } /** * Entferne den {@see Article} mit der entsprechenden Id. * * @param int $id * @return void */ function removeArticle(int $id): void{ $articleToBeRemoved = $this->em->find(Article::class, $id); $this->em->remove($articleToBeRemoved); } }