src/Entity/Um6p/Prof.php line 28

Open in your IDE?
  1. <?php
  2. namespace App\Entity\Um6p;
  3. use App\Repository\Um6p\ProfRepository;
  4. use App\Entity\Page;
  5. use Doctrine\Common\Collections\ArrayCollection;
  6. use Doctrine\Common\Collections\Collection;
  7. use Doctrine\ORM\Mapping as ORM;
  8. use Gedmo\Mapping\Annotation as Gedmo;
  9. use Symfony\Component\Validator\Constraints as Assert;
  10. use Symfony\Component\HttpFoundation\File\File;
  11. use Vich\UploaderBundle\Mapping\Annotation as Vich;
  12. use Knp\DoctrineBehaviors\Contract\Entity\TranslatableInterface;
  13. use Knp\DoctrineBehaviors\Model\Translatable\TranslatableTrait;
  14. use Symfony\Component\PropertyAccess\PropertyAccess
  15. /**
  16.  * @ORM\Entity(repositoryClass=ProfRepository::class)
  17.  * @Vich\Uploadable
  18.  */
  19. class Prof implements TranslatableInterface
  20.     use TranslatableTrait;
  21.     /**
  22.      * @ORM\Id
  23.      * @ORM\GeneratedValue
  24.      * @ORM\Column(type="integer")
  25.      */
  26.     private $id;
  27.     /**
  28.      * @ORM\Column(type="string", length=255, nullable=true)
  29.      */
  30.     private $image;
  31.     /**
  32.      * @ORM\Column(type="integer", nullable=true)
  33.      */
  34.     private $position;
  35.     /**
  36.      * @ORM\Column(type="boolean", nullable=true)
  37.      */
  38.     private $publier;
  39.     /**
  40.      * @ORM\Column(type="string", length=255, nullable=true)
  41.      */
  42.     private $link;
  43.     /**
  44.      * @ORM\Column(type="string", length=255, nullable=true)
  45.      */
  46.     private $linkedin;
  47.     /**
  48.      * @Gedmo\Timestampable(on="create")
  49.      * @ORM\Column(type="datetime", nullable=true)
  50.      */
  51.     private $created_at;
  52.     /**
  53.      * @Gedmo\Timestampable(on="update")
  54.      * @ORM\Column(type="datetime", nullable=true)
  55.      */
  56.     private $updated_at;
  57.     /**
  58.      * @Vich\UploadableField(mapping="prof_image", fileNameProperty="image")
  59.      * @var File
  60.      */
  61.     private $imageFile;
  62.     /**
  63.      * @ORM\ManyToMany(targetEntity=Module::class, mappedBy="profs")
  64.      */
  65.     private $modules;
  66.     /**
  67.      * @ORM\ManyToMany(targetEntity=Page::class, inversedBy="profs")
  68.      */
  69.     private $pages;
  70.     
  71.     protected $translations;
  72.     
  73.     public  function __toString(){
  74.         return $this->getNom();
  75.     }
  76.     public  function getDnom(){
  77.         return $this->getNom();
  78.     }
  79.     public function __construct()
  80.     { 
  81.         $this->modules      = new ArrayCollection();
  82.         $this->pages        = new ArrayCollection();
  83.     }
  84.     public function getId(): ?int
  85.     {
  86.         return $this->id;
  87.     }
  88.     public function getImage(): ?string
  89.     {
  90.         return $this->image;
  91.     }
  92.     public function setImage(?string $image): self
  93.     {
  94.         $this->image $image;
  95.         return $this;
  96.     }
  97.     public function getPosition(): ?int
  98.     {
  99.         return $this->position;
  100.     }
  101.     public function setPosition(?int $position): self
  102.     {
  103.         $this->position $position;
  104.         return $this;
  105.     }
  106.     public function isPublier(): ?bool
  107.     {
  108.         return $this->publier;
  109.     }
  110.     public function setPublier(?bool $publier): self
  111.     {
  112.         $this->publier $publier;
  113.         return $this;
  114.     }
  115.     public function getLink(): ?string
  116.     {
  117.         return $this->link;
  118.     }
  119.     public function setLink(?string $link): self
  120.     {
  121.         $this->link $link;
  122.         return $this;
  123.     }
  124.     public function getLinkedin(): ?string
  125.     {
  126.         return $this->linkedin;
  127.     }
  128.     public function setLinkedin(?string $linkedin): self
  129.     {
  130.         $this->linkedin $linkedin;
  131.         return $this;
  132.     }
  133.     public function setImageFile(File $image null)
  134.     {
  135.         $this->imageFile $image;
  136.         if ($image) {
  137.             $this->updated_at = new \DateTime('now');
  138.         }
  139.         return $this;
  140.     }
  141.     public function getImageFile()
  142.     {
  143.         return $this->imageFile;
  144.     }
  145.     public function getCreatedAt(): ?\DateTimeInterface
  146.     {
  147.         return $this->created_at;
  148.     }
  149.     public function setCreatedAt(?\DateTimeInterface $created_at): self
  150.     {
  151.         $this->created_at $created_at;
  152.         return $this;
  153.     }
  154.     public function getUpdatedAt(): ?\DateTimeInterface
  155.     {
  156.         return $this->updated_at;
  157.     }
  158.     public function setUpdatedAt(?\DateTimeInterface $updated_at): self
  159.     {
  160.         $this->updated_at $updated_at;
  161.         return $this;
  162.     }
  163.  
  164.    
  165.   
  166.    
  167.     /**
  168.      * @return Collection|Module[]
  169.      */
  170.     public function getModules(): Collection
  171.     {
  172.         return $this->modules;
  173.     }
  174.     public function addModule(Module $module): self
  175.     {
  176.         if (!$this->modules->contains($module)) {
  177.             $this->modules[] = $module;
  178.             $module->addElement($this);
  179.         }
  180.         return $this;
  181.     }
  182.     public function removeModule(Module $module): self
  183.     {
  184.         if ($this->modules->removeElement($module)) {
  185.             $module->removeElement($this);
  186.         }
  187.         return $this;
  188.     }
  189.     /**
  190.      * @return Collection|Page[]
  191.      */
  192.     public function getPages(): Collection
  193.     {
  194.         return $this->pages;
  195.     }
  196.     public function addPage(Page $page): self
  197.     {
  198.         if (!$this->pages->contains($page)) {
  199.             $this->pages[] = $page;
  200.             $page->addElement($this);
  201.         }
  202.         return $this;
  203.     }
  204.     public function removePage(Page $page): self
  205.     {
  206.         if ($this->pages->removeElement($page)) {
  207.             $page->removeElement($this);
  208.         }
  209.         return $this;
  210.     }
  211.  
  212.     public function __call($method$arguments)
  213.     {
  214.         return PropertyAccess::createPropertyAccessor()->getValue($this->translate(), $method);
  215.     }
  216. }