| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- <?php
- namespace internship\model;
- use n2n\context\attribute\RequestScoped;
- use n2n\persistence\orm\EntityManager;
- use n2n\io\managed\File;
- use internship\bo\NewsCategory;
- use internship\bo\NewsItem;
- use internship\bo\NewsTag;
- use n2n\context\attribute\Inject;
- use n2n\util\io\IoUtils;
- #[RequestScoped]
- class NewsDao {
- #[Inject]
- private EntityManager $em;
- public function getNewsCategories() {
- $criteria = $this->em->createSimpleCriteria(NewsCategory::getClass(), null,
- array('id' => 'DESC'));
- return $criteria->toQuery()->fetchArray();
- }
- public function getNewsCategory(string $urlPart): ?NewsCategory {
- $criteria = $this->em->createSimpleCriteria(NewsCategory::getClass(), array('urlPart' => $urlPart));
- return $criteria->toQuery()->fetchSingle();
- }
- public function getNewsCategoryById(int $id) {
- return $this->em->find(NewsCategory::getClass(), $id);
- }
- public function saveCategory(NewsCategory $category) {
- $this->em->persist($category);
- }
- public function deleteCategory(NewsCategory $category) {
- $this->em->remove($category);
- }
- public function getNewsItemById(int $id) {
- return $this->em->find(NewsItem::getClass(), $id);
- }
- public function saveNews(NewsItem $news) {
- $this->em->persist($news);
- }
- public function deleteNews(NewsItem $news) {
- $this->em->remove($news);
- }
- public function getNewsTagById(int $id) {
- return $this->em->find(NewsTag::getClass(), $id);
- }
- public function getNewsByTagName(string $name) {
- $criteria = $this->em->createSimpleCriteria(NewsTag::getClass(), array('name' => $name),
- array('name' => 'ASC'));
- return $criteria->toQuery()->fetchArray();
- }
- public function getTags(string $name = null) {
- $matches = null;
- if($name) {$matches = array('name' => $name);}
- $criteria = $this->em->createSimpleCriteria(NewsTag::getClass(), $matches,
- array('name' => 'ASC'));
- return $criteria->toQuery()->fetchArray();
- }
- public function saveTag(NewsTag $tag) {
- $this->em->persist($tag);
- }
- public function deleteTag(NewsTag $tag) {
- $this->em->remove($tag);
- }
- }
|