src/Entity/Categorie.php line 12

  1. <?php
  2. namespace App\Entity;
  3. use App\Repository\CategorieRepository;
  4. use Doctrine\Common\Collections\ArrayCollection;
  5. use Doctrine\Common\Collections\Collection;
  6. use Doctrine\DBAL\Types\Types;
  7. use Doctrine\ORM\Mapping as ORM;
  8. #[ORM\Entity(repositoryClassCategorieRepository::class)]
  9. class Categorie
  10. {
  11.     #[ORM\Id]
  12.     #[ORM\GeneratedValue]
  13.     #[ORM\Column]
  14.     private ?int $id null;
  15.     #[ORM\Column(length255)]
  16.     private ?string $titre null;
  17.     #[ORM\Column(length255)]
  18.     private ?string $url null;
  19.     #[ORM\Column(typeTypes::TEXTnullabletrue)]
  20.     private ?string $description null;
  21.     #[ORM\ManyToOne(targetEntityself::class, inversedBy'categories')]
  22.     private ?self $parent null;
  23.     #[ORM\OneToMany(mappedBy'parent'targetEntityself::class)]
  24.     private Collection $categories;
  25.     #[ORM\Column(length255nullabletrue)]
  26.     private ?string $image null;
  27.     #[ORM\Column(length255)]
  28.     private ?string $resume null;
  29.     #[ORM\ManyToMany(targetEntityMateriel::class, inversedBy'categories')]
  30.     #[ORM\JoinTable(name:"materiel_categorie")]
  31.     private Collection $materiels;
  32.     #[ORM\ManyToMany(targetEntityProtocole::class, mappedBy'categories')]
  33.     #[ORM\JoinTable(name:"protocole_categorie")]
  34.     private Collection $protocoles;
  35.     public function __construct()
  36.     {
  37.         $this->categories = new ArrayCollection();
  38.         $this->materiels = new ArrayCollection();
  39.         $this->protocoles = new ArrayCollection();
  40.     }
  41.     public function __toString(): string
  42.     {
  43.         return $this->getTitre();
  44.     }
  45.     public function titreParent(): string
  46.     {
  47.         $prefix '';
  48.         if($this->parent != null){
  49.             $prefix .= '';
  50.             if($this->parent->parent != null){
  51.                 $prefix .= '---';
  52.                 if($this->parent->parent->parent != null){
  53.                     $prefix .= '---';
  54.                     if($this->parent->parent->parent->parent != null){
  55.                         $prefix .= '---';
  56.                     }
  57.                 }
  58.             }
  59.             $prefix .= ' ';
  60.         }
  61.         return $prefix.$this->getTitre();
  62.     }
  63.     public function titreParentAll(): string
  64.     {
  65.         $prefix '';
  66.         if($this->parent != null){
  67.             $prefix .= '---';
  68.             if($this->parent->parent != null){
  69.                 $prefix .= '---';
  70.                 if($this->parent->parent->parent != null){
  71.                     $prefix .= '---';
  72.                     if($this->parent->parent->parent->parent != null){
  73.                         $prefix .= '---';
  74.                     }
  75.                 }
  76.             }
  77.             $prefix .= ' ';
  78.         }
  79.         return $prefix.$this->getTitre();
  80.     }
  81.     public function getId(): ?int
  82.     {
  83.         return $this->id;
  84.     }
  85.     public function getTitre(): ?string
  86.     {
  87.         return $this->titre;
  88.     }
  89.     public function setTitre(string $titre): self
  90.     {
  91.         $this->titre $titre;
  92.         return $this;
  93.     }
  94.     public function getUrl(): ?string
  95.     {
  96.         return $this->url;
  97.     }
  98.     public function setUrl(string $url): self
  99.     {
  100.         $this->url $url;
  101.         return $this;
  102.     }
  103.     public function getDescription(): ?string
  104.     {
  105.         return $this->description;
  106.     }
  107.     public function setDescription(?string $description): self
  108.     {
  109.         $this->description $description;
  110.         return $this;
  111.     }
  112.     public function getParent(): ?self
  113.     {
  114.         return $this->parent;
  115.     }
  116.     public function setParent(?self $parent): self
  117.     {
  118.         $this->parent $parent;
  119.         return $this;
  120.     }
  121.     /**
  122.      * @return Collection<int, self>
  123.      */
  124.     public function getCategories(): Collection
  125.     {
  126.         return $this->categories;
  127.     }
  128.     public function addCategory(self $category): self
  129.     {
  130.         if (!$this->categories->contains($category)) {
  131.             $this->categories->add($category);
  132.             $category->setParent($this);
  133.         }
  134.         return $this;
  135.     }
  136.     public function removeCategory(self $category): self
  137.     {
  138.         if ($this->categories->removeElement($category)) {
  139.             // set the owning side to null (unless already changed)
  140.             if ($category->getParent() === $this) {
  141.                 $category->setParent(null);
  142.             }
  143.         }
  144.         return $this;
  145.     }
  146.     public function getImage(): ?string
  147.     {
  148.         return $this->image;
  149.     }
  150.     public function setImage(?string $image): self
  151.     {
  152.         $this->image $image;
  153.         return $this;
  154.     }
  155.     public function getResume(): ?string
  156.     {
  157.         return $this->resume;
  158.     }
  159.     public function setResume(string $resume): self
  160.     {
  161.         $this->resume $resume;
  162.         return $this;
  163.     }
  164.     /**
  165.      * @return Collection<int, Materiel>
  166.      */
  167.     public function getMateriels(): Collection
  168.     {
  169.         return $this->materiels;
  170.     }
  171.     public function addMateriel(Materiel $materiel): self
  172.     {
  173.         if (!$this->materiels->contains($materiel)) {
  174.             $this->materiels->add($materiel);
  175.         }
  176.         return $this;
  177.     }
  178.     public function removeMateriel(Materiel $materiel): self
  179.     {
  180.         $this->materiels->removeElement($materiel);
  181.         return $this;
  182.     }
  183.     /**
  184.      * @return Collection<int, Protocole>
  185.      */
  186.     public function getProtocoles(): Collection
  187.     {
  188.         return $this->protocoles;
  189.     }
  190.     public function addProtocole(Protocole $protocole): self
  191.     {
  192.         if (!$this->protocoles->contains($protocole)) {
  193.             $this->protocoles->add($protocole);
  194.             $protocole->addCategory($this);
  195.         }
  196.         return $this;
  197.     }
  198.     public function removeProtocole(Protocole $protocole): self
  199.     {
  200.         if ($this->protocoles->removeElement($protocole)) {
  201.             $protocole->removeCategory($this);
  202.         }
  203.         return $this;
  204.     }
  205.     
  206. }