Outils pour utilisateurs

Outils du site


symfony4:relations_entre_entites

Relations entre entités

Doc: https://symfony.com/doc/current/doctrine/associations.html

Dans cette exemple, une relation OneToMany existe entre les entités Category et Product.

Entité Sens de la relation Explication
Category OneToMany One Category To Many Products
Product ManyToOne Many Products To One Category

Éléments de la relation

Unidirectionel ou bidirectionel ?

La seule partie est est obligatoire c'est le ManyToOne dans la classe Product.

Le OneToMany dans la classe Category n'est utile que si on veut pouvoir récupérer tous les produits depuis une catégorie.

Si on n'utilise pas ce côté de la relation, alors les inversedBy et mappedBy sont inutiles.

Entité Category

src/Entity/Category.php
namespace App\Entity;
 
class Category {
 
    /**
     * @ORM\Id
     * @ORM\GeneratedValue
     * @ORM\Column(type="integer")
     */
    private $id;
 
    /**
     * @ORM\Column(type="string")
     */
    private $name;
 
    /**
     * @ORM\OneToMany( targetEntity="App\Entity\Product",
     *                 mappedBy="category")
     */
    private $products;
 
}

Entité Product

src/Entity/Product.php
namespace App\Entity;
 
class Product {
 
    /**
     * @ORM\Id
     * @ORM\GeneratedValue
     * @ORM\Column(type="integer")
     */
    private $id;
 
    /**
     * @ORM\Column(type="string")
     */
    private $name;
 
    /**
     * @ORM\ManyToOne( targetEntity="App\Entity\Category",
     *                 inversedBy="products")
     */
     private $category;
 
}
symfony4/relations_entre_entites.txt · Dernière modification: 2020/04/23 09:52 (modification externe)