src/CasinoBundle/Entity/BlogTag.php line 25

Open in your IDE?
  1. <?php
  2. namespace App\CasinoBundle\Entity;
  3. use Doctrine\Common\Collections\Collection;
  4. use App\CmsBundle\Entity\Site;
  5. use App\CmsBundle\Entity\SlugTrait;
  6. use Doctrine\Common\Collections\ArrayCollection;
  7. use Doctrine\ORM\Mapping as ORM;
  8. use App\CmsBundle\Entity\IdTrait;
  9. /**
  10.  * BlogTag
  11.  *
  12.  * @ORM\Table(
  13.  *     name="blog_tag",
  14.  *     uniqueConstraints={
  15.  *         @ORM\UniqueConstraint(name="blog_tag_slug_uindex", columns={"slug"}),
  16.  *         @ORM\UniqueConstraint(name="blog_tag_name_uindex", columns={"name"})
  17.  *     }
  18.  * )
  19.  * @ORM\Entity(repositoryClass="App\CasinoBundle\Repository\BlogTagRepository")
  20.  * @ORM\HasLifecycleCallbacks()
  21.  * @ORM\Cache(usage="NONSTRICT_READ_WRITE", region="one_day")
  22.  */
  23. class BlogTag
  24. {
  25.     use IdTraitSlugTraitNameTrait;
  26.     /**
  27.      * @ORM\ManyToMany(targetEntity="Article", mappedBy="blogTags", cascade={"persist"})
  28.      */
  29.     private $articles;
  30.     /**
  31.      * @ORM\ManyToMany(targetEntity="App\CmsBundle\Entity\Site", cascade={"persist"})
  32.      * @ORM\JoinTable(
  33.      *     name="blog_tag_site",
  34.      *     joinColumns={
  35.      *          @ORM\JoinColumn(name="blog_tag_id", referencedColumnName="id")
  36.      *     },
  37.      *     inverseJoinColumns={
  38.      *          @ORM\JoinColumn(name="site_id", referencedColumnName="id")
  39.      *     }
  40.      * )
  41.      */
  42.     private $sites;
  43.     public function __construct()
  44.     {
  45.         $this->articles = new ArrayCollection();
  46.         $this->sites = new ArrayCollection();
  47.     }
  48.     public function __toString(): string
  49.     {
  50.         return $this->name;
  51.     }
  52.     public function addArticle(Article $article): self
  53.     {
  54.         if (!$this->articles->contains($article)) {
  55.             $this->articles[] = $article;
  56.             $article->addBlogTag($this);
  57.         }
  58.         return $this;
  59.     }
  60.     public function removeArticle(Article $article): self
  61.     {
  62.         if ($this->articles->contains($article)) {
  63.             $this->articles->removeElement($article);
  64.             $article->removeBlogTag($this);
  65.         }
  66.         return $this;
  67.     }
  68.     public function getSites(): Collection
  69.     {
  70.         return $this->sites;
  71.     }
  72.     public function addSite(Site $site): self
  73.     {
  74.         if (!$this->sites->contains($site)) {
  75.             $this->sites[] = $site;
  76.         }
  77.         return $this;
  78.     }
  79.     public function removeSite(Site $site): self
  80.     {
  81.         if ($this->sites->contains($site)) {
  82.             $this->sites->removeElement($site);
  83.         }
  84.         return $this;
  85.     }
  86. }