Les entités représentent les tables SQL. Elles permettent de définir les différents objets utilisés par l'application et donc par extension, la base de données.
Elles représentent donc les classes utilisées par l'application ainsi que leurs méthodes et attribut, l'ORM se contente de transformer ces objets définis pour les rendre utilisable en SQL.
Une entité se défini de la manière suivante :
Les types d'attributs, comme les options des champs sont nombreux et listé sur la doc officiel.
<?php namespace App\Entity; use Doctrine\ORM\Mapping as ORM; /** * @ORM\Entity(repositoryClass="App\Repository\SWFileRepository") */ class SWFile { /** * @ORM\Id() * @ORM\GeneratedValue() * @ORM\Column(type="integer") */ private $id; /** * @ORM\Column(type="string", length=191) */ private $name; /** * @ORM\Column(type="date") */ private $editDate; /** * @ORM\Column(type="boolean") */ private $active; /** * @return int|null */ public function getId(): ?int { return $this->id; } /** * @return null|string */ public function getName(): ?string { return $this->name; } /** * @param string $name * @return SWFile */ public function setName(string $name): self { $this->name = $name; return $this; } /** * @return \DateTimeInterface|null */ public function getEditDate(): ?\DateTimeInterface { return $this->editDate; } /** * @param \DateTimeInterface $editDate * @return SWFile */ public function setEditDate(\DateTimeInterface $editDate): self { $this->editDate = $editDate; return $this; } /** * @return bool|null */ public function getActive(): ?bool { return $this->active; } /** * @param bool $active * @return SWFile */ public function setActive(bool $active): self { $this->active = $active; return $this; } }
Blocage en numérique (0 devant possible avec ou sans . et sans ,):
<?php use Symfony\Component\Validator\Constraints as Assert; /** * @ORM\Column(type="string", length=255) * * @Assert\Regex( * pattern="/^(([0-9]*)|(([0-9]*)\.([0-9]*)))$/", * match=true, * message="Le champs doit contenir une valeur numérique !" * ) */
Les entiers
<?php use Symfony\Component\Validator\Constraints as Assert; /** * @ORM\Column(type="string", length=255) * * @Assert\Regex( * pattern="/^(([0-9]*))$/", * match=true, * message="La quantité doit être une valeur entière !" * ) */
Téléphone FR
<?php use Symfony\Component\Validator\Constraints as Assert; /** * @ORM\Column(type="string", length=255) * * @Assert\Regex( * pattern="/^(?:(?:\+|00)33|0)\s*[1-9](?:[\s.-]*\d{2}){4}$/", * match=true, * message="Le champs téléphone doit être au format standard téléphonique !" * ) */
<?php use Symfony\Component\Validator\Constraints as Assert; /** * @ORM\Column(type="string", length=255) * * @Assert\Regex( * pattern="/^[\w-\.]+@([\w-]+\.)+[\w-]{2,4}$/", * match=true, * message="Le champs mail être une adresse mail !" * ) */
Code postal
<?php use Symfony\Component\Validator\Constraints as Assert; /** * @ORM\Column(type="string", length=255) * * @Assert\Regex( * pattern="/\d{2}[ ]?\d{3}/", * match=true, * message="Le champs CP être un code postal à 5 chiffre !" * ) */