src/Entity/News.php line 17

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Repository\NewsRepository;
  4. use Doctrine\Common\Collections\ArrayCollection;
  5. use Doctrine\Common\Collections\Collection;
  6. use Doctrine\ORM\Mapping as ORM;
  7. use Symfony\Component\Validator\Constraints as Assert;
  8. use Vich\UploaderBundle\Mapping\Annotation as Vich;
  9. /**
  10.  * @ORM\Entity(repositoryClass=NewsRepository::class)
  11.  * @Vich\Uploadable
  12.  */
  13. class News
  14. {
  15.     /**
  16.      * @ORM\Id
  17.      * @ORM\GeneratedValue
  18.      * @ORM\Column(type="integer")
  19.      */
  20.     private $id;
  21.     /**
  22.      * @ORM\Column(type="boolean")
  23.      */
  24.     private bool $active false;
  25.     /**
  26.      * @ORM\ManyToOne(targetEntity=User::class)
  27.      * @ORM\JoinColumn(nullable=true)
  28.      */
  29.     private ?User $author;
  30.     /**
  31.      * @Assert\NotBlank
  32.      * @ORM\Column(type="string", length=255)
  33.      */
  34.     private string $title;
  35.     /**
  36.      * @Assert\NotBlank
  37.      * @ORM\Column(type="text")
  38.      */
  39.     private string $content;
  40.     /**
  41.      * @ORM\ManyToOne(targetEntity=NewsCategory::class)
  42.      * @ORM\JoinColumn(nullable=true)
  43.      */
  44.     private NewsCategory $category;
  45.     /**
  46.      * @ORM\Column(type="datetime")
  47.      */
  48.     private ?\DateTime $createdAt;
  49.     /**
  50.      * @ORM\ManyToMany(targetEntity="App\Entity\Keywords", inversedBy="mentionsNews", cascade={"persist"})
  51.      * @ORM\JoinTable(name="news_keywords")
  52.      * @ORM\OrderBy({"keyword" = "ASC"})
  53.      */
  54.     private $listekeywords;
  55.     /**
  56.      * @ORM\ManyToMany(targetEntity="App\Entity\Lexique", inversedBy="mentionsNews", cascade={"persist"})
  57.      * @ORM\JoinTable(name="news_lexiques")
  58.      * @ORM\OrderBy({"word" = "ASC"})
  59.      */
  60.     private $listelexique;
  61.     /**
  62.      * @ORM\Column(type="string", length=255, nullable=true)
  63.      * @var string
  64.      */
  65.     private $pdf;
  66.     /**
  67.      * @Vich\UploadableField(mapping="news_pdf", fileNameProperty="pdf")
  68.      * @var File
  69.      */
  70.     private $pdfFile;
  71.     public function __construct()
  72.     {
  73.         $this->createdAt = new \DateTime();
  74.         $this->updatedAt = new \DateTime();
  75.         $this->listekeywords = new ArrayCollection();
  76.         $this->listelexique = new ArrayCollection();
  77.     }
  78.     public function getId(): ?int
  79.     {
  80.         return $this->id;
  81.     }
  82.     public function getTitle(): ?string
  83.     {
  84.         return $this->title;
  85.     }
  86.     public function setTitle(string $title): self
  87.     {
  88.         $this->title $title;
  89.         return $this;
  90.     }
  91.     public function getContent(): ?string
  92.     {
  93.         return $this->content;
  94.     }
  95.     public function setContent(string $content): self
  96.     {
  97.         $this->content $content;
  98.         return $this;
  99.     }
  100.     public function getCreatedAt(): ?\DateTimeInterface
  101.     {
  102.         return $this->createdAt;
  103.     }
  104.     public function setCreatedAt(?\DateTimeInterface $createdAt): self
  105.     {
  106.         $this->createdAt $createdAt;
  107.         return $this;
  108.     }
  109.     public function getCategory(): ?NewsCategory
  110.     {
  111.         return $this->category;
  112.     }
  113.     public function setCategory(NewsCategory $category): void
  114.     {
  115.         $this->category $category;
  116.     }
  117.     public function isActive(): bool
  118.     {
  119.         return $this->active;
  120.     }
  121.     public function setActive(bool $active): void
  122.     {
  123.         $this->active $active;
  124.     }
  125.     public function getAuthor(): ?User
  126.     {
  127.         return $this->author;
  128.     }
  129.     public function setAuthor(?User $author): void
  130.     {
  131.         $this->author $author;
  132.     }
  133.     public function getListekeywords(): Collection
  134.     {
  135.         return $this->listekeywords;
  136.     }
  137.     public function getListelexique(): Collection
  138.     {
  139.         return $this->listelexique;
  140.     }
  141.     public function addListelexique(Lexique $lexique): self
  142.     {
  143.         if (!$this->listelexique->contains($lexique)) {
  144.             $this->listelexique[] = $lexique;
  145.         }
  146.         return $this;
  147.     }
  148.     public function removeListelexique(Lexique $lexique): self
  149.     {
  150.         $this->listelexique->removeElement($lexique);
  151.         return $this;
  152.     }
  153.     public function setPdfFile($pdf null)
  154.     {
  155.         $this->pdfFile $pdf;
  156.         // VERY IMPORTANT:
  157.         // It is required that at least one field changes if you are using Doctrine,
  158.         // otherwise the event listeners won't be called and the file is lost
  159.         if ($pdf) {
  160.             // if 'updatedAt' is not defined in your entity, use another property
  161.             $this->updatedAt = new \DateTime('now');
  162.         }
  163.     }
  164.     public function getPdfFile()
  165.     {
  166.         return $this->pdfFile;
  167.     }
  168.     public function setPdf($pdf)
  169.     {
  170.         // $pdf = str_replace(' ', '_', $pdf);
  171.         $this->pdf $pdf;
  172.     }
  173.     public function getPdf()
  174.     {
  175.         return $this->pdf;
  176.     }
  177.     public function addListekeyword(Keywords $listekeyword): self
  178.     {
  179.         if (!$this->listekeywords->contains($listekeyword)) {
  180.             $this->listekeywords[] = $listekeyword;
  181.         }
  182.         return $this;
  183.     }
  184.     public function removeListekeyword(Keywords $listekeyword): self
  185.     {
  186.         $this->listekeywords->removeElement($listekeyword);
  187.         return $this;
  188.     }
  189. }