Category.php 853 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. <?php
  2. namespace internship\bo;
  3. use n2n\persistence\orm\attribute\ManyToMany;
  4. use nql\bo\BlogArticle;
  5. use n2n\reflection\ObjectAdapter;
  6. class Category extends ObjectAdapter implements \JsonSerializable {
  7. public int $id;
  8. public string $name;
  9. /**
  10. * @var \ArrayObject<Article>
  11. */
  12. #[ManyToMany(Article::class)]
  13. public \ArrayObject $articles;
  14. public function getBlogArticles() {
  15. return $this->blogArticles;
  16. }
  17. public function setBlogArticles(\ArrayObject $blogArticles) {
  18. $this->blogArticles = $blogArticles;
  19. }
  20. private function getArticleIds() {
  21. $articles = array();
  22. foreach($this->articles as $article) {
  23. $articles[] = $article->basicJsonSerialize();
  24. }
  25. return $articles;
  26. }
  27. function jsonSerialize(): mixed {
  28. return [
  29. 'id' => $this->id,
  30. 'name' => $this->name,
  31. 'articles' => $this->getArticleIds()
  32. ];
  33. }
  34. }