Outils pour utilisateurs

Outils du site


symfony_4:doctrine_2:les_entites

Ceci est une ancienne révision du document !


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 regexts 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="La quantité doit être une valeur numériaue !"
     * )
     */
symfony_4/doctrine_2/les_entites.1667899773.txt.gz · Dernière modification: 2022/11/08 10:29 de admin