Outils pour utilisateurs

Outils du site


symfony4:creation_relation_en_ligne_de_commande

Création d'une Relation en ligne de commande

Création d'une relation OneToMany

Entité existante : Article.

Création d'une nouvelle entité Category liée à l'entité Article.

php bin/console make:entity

Nom de la classe : Category

Entrer les propriétés de la classe, comme title, description, etc…

Ensuite, ajouter une propriété articles de type relation, et répondre aux questions :

Entité liée

What class should this entity be related to ? Article

Type de relation

Relation type ? [ManyToOne, OneToMany, ManyToMany, OneToOne]

Selon les exemples proposés, on est dans le cas OneToMany :

OneToMany Each Category relates to many Article objects.
Each Article relates to one Category.

Champ ajouté dans l'entité liée

New field name inside Article: category

Nullable ? no

Automatically delete orphaned ? no

Changements effectués au niveau des classes

Classe Article :

class Article
{
    ...
 
    /**
     * @ORM\ManyToOne(targetEntity="App\Entity\Category",
     *                inversedBy="articles")
     * @ORM\JoinColumn(nullable=false)
     */
    private $category;
 
    ...
}

Classe Category :

class Category
{
    ...
 
    /**
     * @ORM\OneToMany(targetEntity="App\Entity\Article",
     *                mappedBy="category")
     */
    private $articles;
 
    ...
}

Il faut lire les relations comme ceci :

  • Dans la classe Article, on a une relation ManyToOne, parce que Many Articles To One Category.
  • Dans la classe Category, on a une relation OneToMany, parce que One Category To Many Articles.
symfony4/creation_relation_en_ligne_de_commande.txt · Dernière modification: 2020/04/23 07:27 par marclebrun