Symfony 4 - Créer un blog pas à pas - Les relations entre les tables

2 août 2019 - : MVC Tutoriel Symfony - : 2 commentaires - : 383 - Tutoriel Base de données MVC Symfony

Visualisez les fichiers de cette série sur GitHub

Dans le précédent article, nous avons parlé de la structure de la base de données.

Cette base de données contient 5 tables qui sont liées entre elles par des relations un à plusieurs ou plusieurs à plusieurs.

Lors de la création de nos entités, qui servent à créer les tables, nous allons également créer les relations.

Nous avons deux relations un à plusieurs dans la base de données. La première entre la table users et la table articles, la seconde entre la table articles et la table commentaires.

Nous allons prendre l'exemple de la table commentaires.

Celle-ci contient une clé étrangère "articles_id" permettant de référencer l'article auquel est lié ce commentaire.

Lors de la création de l'entité, nous allons créer cette clé étrangère.

Si le champs s'appelle "articles_id", nous le nommons uniquement "articles".

Nous poursuivons en choisissant le type "relation" comme sur l'écran ci-dessous.

A la question suivante, nous devons déterminer à quelle entité nous souhaitons lier l'entité commentaires. Dans notre cas, il s'agit de l'entité "Articles".

Après avoir validé, nous avons une question concernant le type de relation comme ci-dessous.

C'est ici que nous définissons le type de relation. Dans notre cas, chaque commentaire est lié à un article et chaque article peut avoir plusieurs commentaires, il s'agira donc de "ManyToOne".

Dans le cas de la relation entre les articles et les catégories, nous choisirions "ManyToMany".

Dans les questions suivantes nous allons successivement décider :

  • Si le champ peut être vide, ici nous répondons "no"
  • Si nous souhaitons pouvoir accéder aux commentaires depuis l'entité "Articles", c'est très pratique donc "yes"
  • Quel sera le nom de la propriété "commentaires" dans l'entité "Articles"
  • Si nous souhaitons supprimer les commentaires "orphelins" si l'article est supprimé. C'est pratique, donc "yes"

Et voilà, notre relation est créée, nous reviendrons en détails sur le contenu des entités dans un prochain article.

Obtenir de l'aide

Pour obtenir de l'aide, vous pouvez accéder aux forums de Nouvelle-Techno.fr ou au serveur Discord pour une entraide par chat

Visualisez les fichiers de cette série sur GitHub

Partager

Partager sur Facebook Partager sur Twitter Partager sur LinkedIn

Commentaires

Ecrire un commentaire

mrdevsoft a écrit le 23 septembre 2019 à 02:12

Je voulais savoir, pour la question what class should this entity be related to ? que faut-il répondre ? parce que j'ai essayé en tapant Articles mais ça ne marche pas.

Répondre

Nouvelle-Techno.fr a répondu le 23 septembre 2019 à 06:32

Bonjour,

La réponse à cette question doit être le nom d'une classe Entity existante.

Si l'entité Articles existe, ça doit fonctionner.

Répondre

Ecrire un commentaire