src/Entity/User.php line 18

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Repository\UserRepository;
  4. use Doctrine\Common\Collections\ArrayCollection;
  5. use Doctrine\ORM\Mapping as ORM;
  6. use Doctrine\Common\Collections\Collection;
  7. use Symfony\Component\Security\Core\User\UserInterface;
  8. use Symfony\Component\Validator\Constraints as Assert;
  9. use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
  10. /**
  11.  * @ORM\Entity(repositoryClass=UserRepository::class)
  12.  * @UniqueEntity(fields="email", message="Email has already taken.")
  13.  * @UniqueEntity(fields="username", message="Username has already taken.")
  14.  */
  15. class User implements UserInterface
  16. {
  17.     /**
  18.      * @var int
  19.      *
  20.      * @ORM\Column(name="id", type="integer", nullable=false)
  21.      * @ORM\Id
  22.      * @ORM\GeneratedValue(strategy="IDENTITY")
  23.      */
  24.     private $id;
  25.     /**
  26.      * @ORM\Column(type="string", length=180, unique=true)
  27.      */
  28.     private $username;
  29.     /**
  30.      * @ORM\Column(type="json")
  31.      */
  32.     private $roles = [];
  33.     /**
  34.      * @var string The hashed password
  35.      * @ORM\Column(type="string")
  36.      */
  37.     private $password;
  38.     /**
  39.      * @ORM\Column(type="string", length=180, unique=true)
  40.      * @Assert\NotBlank(groups={"Default"})
  41.      * @Assert\Email(groups={"Default"})
  42.      */
  43.     protected $email;
  44.     /**
  45.      * @ORM\Column(type="boolean", nullable=true, options={"default": 0})
  46.      */
  47.     protected $enabled false;
  48.     /**
  49.      * @var bool
  50.      *
  51.      * @ORM\Column(name="is_verified", type="boolean", nullable=false)
  52.      */
  53.     private $isVerified;
  54.     protected $plainPassword;
  55.     /**
  56.      * @ORM\OneToOne(targetEntity=PatientHistory::class, mappedBy="idUser", cascade={"persist", "remove"})
  57.      */
  58.     private $patientHistory;
  59.     /**
  60.      * @ORM\OneToOne(targetEntity=Doctor::class, mappedBy="user", cascade={"persist", "remove"})
  61.      */
  62.     private $doctor;
  63.     /**
  64.      * @ORM\OneToOne(targetEntity=Nutritionist::class, mappedBy="user", cascade={"persist", "remove"})
  65.      */
  66.     private $nutritionist;
  67.     /**
  68.      * @ORM\OneToMany(targetEntity=Exams::class, mappedBy="user")
  69.      */
  70.     private $examsfile;
  71.     public function __construct()
  72.     {
  73.         $this->examsfile = new ArrayCollection();
  74.    
  75.     } 
  76.     public  function __toString(){
  77.         return $this->username;
  78.     }
  79.     
  80.     public function getId(): ?int
  81.     {
  82.         return $this->id;
  83.     }
  84.     /**
  85.      * A visual identifier that represents this user.
  86.      *
  87.      * @see UserInterface
  88.      */
  89.     public function getUsername(): string
  90.     {
  91.         return (string) $this->username;
  92.     }
  93.     public function setUsername(string $username): self
  94.     {
  95.         $this->username $username;
  96.         
  97.         return $this;
  98.     }
  99.     /**
  100.      * @see UserInterface
  101.      */
  102.     public function getRoles(): array
  103.     {
  104.         $roles $this->roles;
  105.         // guarantee every user at least has ROLE_USER
  106.         $roles[] = 'ROLE_USER';
  107.         return array_unique($roles);
  108.     }
  109.     public function setRoles(array $roles): self
  110.     {
  111.         $this->roles $roles;
  112.         return $this;
  113.     }
  114.     /**
  115.      * @see UserInterface
  116.      */
  117.     public function getPassword(): ?string
  118.     {
  119.         return (string) $this->password;
  120.     }
  121.     public function setPassword(string $password): self
  122.     {
  123.         $this->password $password;
  124.         return $this;
  125.     }
  126.     /**
  127.      * @see UserInterface
  128.      */
  129.     public function getSalt()
  130.     {
  131.         // not needed when using the "bcrypt" algorithm in security.yaml
  132.     }
  133.     /**
  134.      * @see UserInterface
  135.      */
  136.     public function eraseCredentials()
  137.     {
  138.         // If you store any temporary, sensitive data on the user, clear it here
  139.         // $this->plainPassword = null;
  140.     }
  141.     public function getPlainPassword(): ?string
  142.     {
  143.         return $this->plainPassword;
  144.     }
  145.     public function setPlainPassword(string $plainPassword): self
  146.     {
  147.         $this->plainPassword $plainPassword;
  148.         return $this;
  149.     }
  150.     public function getEmail(): ?string
  151.     {
  152.         return $this->email;
  153.     }
  154.     public function setEmail(string $email): self
  155.     {
  156.         $this->email $email;
  157.         return $this;
  158.     }
  159.     public function getEnabled(): ?bool
  160.     {
  161.         return $this->enabled;
  162.     }
  163.     public function setEnabled(?bool $enabled): self
  164.     {
  165.         $this->enabled $enabled;
  166.         return $this;
  167.     }
  168.     public function getIsVerified(): ?bool
  169.     {
  170.         return $this->isVerified;
  171.     }
  172.     public function setIsVerified(bool $isVerified): self
  173.     {
  174.         $this->isVerified $isVerified;
  175.         return $this;
  176.     }
  177.     public function getPatientHistory(): ?PatientHistory
  178.     {
  179.         return $this->patientHistory;
  180.     }
  181.     public function setPatientHistory(PatientHistory $patientHistory): self
  182.     {
  183.         // set the owning side of the relation if necessary
  184.         if ($patientHistory->getIdUser() !== $this) {
  185.             $patientHistory->setIdUser($this);
  186.         }
  187.         $this->patientHistory $patientHistory;
  188.         return $this;
  189.     }
  190.     public function getDoctor(): ?Doctor
  191.     {
  192.         return $this->doctor;
  193.     }
  194.     public function setDoctor(Doctor $doctor): self
  195.     {
  196.         // set the owning side of the relation if necessary
  197.         if ($doctor->getUser() !== $this) {
  198.             $doctor->setUser($this);
  199.         }
  200.         $this->doctor $doctor;
  201.         return $this;
  202.     }
  203.     public function getNutritionist(): ?Nutritionist
  204.     {
  205.         return $this->nutritionist;
  206.     }
  207.     public function setNutritionist(Nutritionist $nutritionist): self
  208.     {
  209.         // set the owning side of the relation if necessary
  210.         if ($nutritionist->getUser() !== $this) {
  211.             $nutritionist->setUser($this);
  212.         }
  213.         $this->nutritionist $nutritionist;
  214.         return $this;
  215.     }
  216.         /**
  217.      * @return Collection<int, Exams>
  218.      */
  219.     public function getExamsfile(): Collection
  220.     {
  221.         return $this->examsfile;
  222.     }
  223.     public function addExamsfile(Exams $examsfile): self
  224.     {
  225.         if (!$this->examsfile->contains($examsfile)) {
  226.             $this->examsfile[] = $examsfile;
  227.             $examsfile->setUser($this);
  228.         }
  229.         return $this;
  230.     }
  231.     public function removeExamsfile(Exams $examsfile): self
  232.     {
  233.         if ($this->examsfile->removeElement($examsfile)) {
  234.             // set the owning side to null (unless already changed)
  235.             if ($examsfile->getUser() === $this) {
  236.                 $examsfile->setUser(null);
  237.             }
  238.         }
  239.         return $this;
  240.     }
  241. }