src/Entity/Tuto.php line 18

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