diff options
| author | Daniel Weipert <code@drogueronin.de> | 2022-01-16 12:22:04 +0100 | 
|---|---|---|
| committer | Daniel Weipert <code@drogueronin.de> | 2022-01-16 12:22:04 +0100 | 
| commit | 8d58c7de92c75e826a8399ec7914b463f8916dcd (patch) | |
| tree | 9663d390c7474c3a883438c16d7e0015c576cf04 /src | |
| parent | 4cacc94240944ff316104bfd1b5e8e00fad14517 (diff) | |
Add categories for cards and relate them to meta
Diffstat (limited to 'src')
| -rw-r--r-- | src/Model/Card.php | 8 | ||||
| -rw-r--r-- | src/Model/CardMeta.php | 10 | ||||
| -rw-r--r-- | src/Model/Category.php | 61 | 
3 files changed, 79 insertions, 0 deletions
| 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 @@ +<?php + +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: 'categories')] +/** + * @Entity + * @Table(name="categories") + */ +class Category +{ +  #[Id] +  #[Column(type: 'integer')] +  #[GeneratedValue] +  /** +   * @Id +   * @Column(type="integer") +   * @GeneratedValue +   */ +  public int $id; + +  #[Column(type: 'string')] +  /** +   * @Column(type="string") +   */ +  public string $name; + +  #[ManyToMany(targetEntity: Card::class, mappedBy: 'categories')] +  /** +   * @ManyToMany(targetEntity="Card", mappedBy="categories", cascade={"persist"}) +   */ +  public Collection|ArrayCollection|PersistentCollection $cards; + +  #[ManyToMany(targetEntity: CardMeta::class, mappedBy: 'categories')] +  /** +   * @ManyToMany(targetEntity="CardMeta", mappedBy="categories", cascade={"persist"}) +   */ +  public Collection|ArrayCollection|PersistentCollection $meta; + +  /** +   * Category constructor. +   */ +  public function __construct(string $name) +  { +    $this->name = $name; +    $this->cards = new ArrayCollection(); +    $this->meta = new ArrayCollection(); +  } +} + | 
