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 |
Doc: https://www.doctrine-project.org/projects/doctrine-orm/en/current/reference/association-mapping.html
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.
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; }
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; }