Outils pour utilisateurs

Outils du site


symfony_4:doctrine_2:les_entites

Les Entités

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 :

  • Définition des attributs et de leurs types & options.
  • Définition des méthodes, setters & getters.

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;
    }
 
}

Les regexs utiles

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 !"
     * )
     */

Mail

<?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 !"
     * )
     */

symfony_4/doctrine_2/les_entites.txt · Dernière modification: 2022/11/14 14:18 de admin