From 8d58c7de92c75e826a8399ec7914b463f8916dcd Mon Sep 17 00:00:00 2001 From: Daniel Weipert Date: Sun, 16 Jan 2022 12:22:04 +0100 Subject: Add categories for cards and relate them to meta --- src/Model/Card.php | 8 +++++++ src/Model/CardMeta.php | 10 +++++++++ src/Model/Category.php | 61 ++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 79 insertions(+) create mode 100644 src/Model/Category.php diff --git a/src/Model/Card.php b/src/Model/Card.php index 9707e16..abaa06e 100644 --- a/src/Model/Card.php +++ b/src/Model/Card.php @@ -9,6 +9,7 @@ use Doctrine\DBAL\Schema\Table; use Doctrine\ORM\Mapping\Entity; use Doctrine\ORM\Mapping\GeneratedValue; use Doctrine\ORM\Mapping\Id; +use Doctrine\ORM\Mapping\ManyToMany; use Doctrine\ORM\Mapping\OneToMany; use Doctrine\ORM\PersistentCollection; use Elements\DB; @@ -49,6 +50,12 @@ class Card */ public Collection|ArrayCollection|PersistentCollection $votes; + #[ManyToMany(targetEntity: Category::class, inversedBy: 'cards')] + /** + * @ManyToMany(targetEntity="Category", inversedBy="cards", cascade={"persist"}) + */ + public Collection|ArrayCollection|PersistentCollection $categories; + /** * Card constructor. */ @@ -57,6 +64,7 @@ class Card $this->meta = new ArrayCollection(); $this->artworks = new ArrayCollection(); $this->votes = new ArrayCollection(); + $this->categories = new ArrayCollection(); } /** diff --git a/src/Model/CardMeta.php b/src/Model/CardMeta.php index 2ec0da9..9e0f544 100644 --- a/src/Model/CardMeta.php +++ b/src/Model/CardMeta.php @@ -2,12 +2,15 @@ namespace Elements\Model; +use Doctrine\Common\Collections\ArrayCollection; use Doctrine\DBAL\Schema\Column; use Doctrine\DBAL\Schema\Table; use Doctrine\ORM\Mapping\Entity; use Doctrine\ORM\Mapping\GeneratedValue; use Doctrine\ORM\Mapping\Id; +use Doctrine\ORM\Mapping\ManyToMany; use Doctrine\ORM\Mapping\ManyToOne; +use Doctrine\ORM\PersistentCollection; #[Entity] #[Table(name: 'card_meta')] @@ -45,6 +48,12 @@ class CardMeta */ public Card $card; + #[ManyToMany(targetEntity: Category::class, inversedBy: 'meta')] + /** + * @ManyToMany(targetEntity="Category", inversedBy="meta", cascade={"persist"}) + */ + public Collection|ArrayCollection|PersistentCollection $categories; + /** * CardMeta constructor. */ @@ -52,6 +61,7 @@ class CardMeta { $this->key = $key; $this->value = $value; + $this->categories = new ArrayCollection(); } } diff --git a/src/Model/Category.php b/src/Model/Category.php new file mode 100644 index 0000000..84d12a3 --- /dev/null +++ b/src/Model/Category.php @@ -0,0 +1,61 @@ +name = $name; + $this->cards = new ArrayCollection(); + $this->meta = new ArrayCollection(); + } +} + -- cgit v1.2.3