| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- <?php
- namespace internship\bo;
- use n2n\persistence\orm\attribute\ManyToMany;
- use nql\bo\BlogArticle;
- use n2n\reflection\ObjectAdapter;
- use n2n\persistence\orm\CascadeType;
- class Category extends ObjectAdapter implements \JsonSerializable {
- public int $id;
- public string $name;
- /**
- * @var \ArrayObject<Article>
- */
- #[ManyToMany(Article::class, cascade: CascadeType::NONE)]
- public \ArrayObject $articles;
- function __construct() {
- $this->articles = new \ArrayObject();
- }
- private function getArticleIds() {
- $articles = array();
- foreach($this->articles as $article) {
- $articles[] = $article->basicJsonSerialize();
- }
- return $articles;
- }
- function basicJsonSerialize() {
- return [
- 'id' => $this->id,
- 'name' => $this->name
- ];
- }
- function jsonSerialize(): mixed {
- $basicJson = $this->basicJsonSerialize();
- $basicJson['articles'] = $this->getArticleIds();
- return $basicJson;
- }
- }
|