Pour mettre à bien ce projet de covoiturage j’ai d’abord pu créer de la base de données, grâce à Doctrine, un bundle de Symfony qui facilite la création de la base de données en utilisant des entités. Les entités sont des objets qui représentent des tables de la base de données, offrant ainsi une flexibilité accrue lors des modifications et permette de créer des relations plus simplement. Les entités récupèrent les données dans nos vues pour les afficher, les manipuler dans les contrôleurs afin d’effectuer des modifications ou vérifier la connexion d’un utilisateur.

Les relations entre les entités sont établies grâce aux mappings, qui permettent de lier plusieurs entités ensemble et de définir les relations (par exemple, une relation de type « Many-to-One » ou « Many-to-Many »). Cela facilite la gestion des relations complexes entre les différentes entités de notre application.

Exemple d’affichage de données, ici on va récupérer l’image de l’utilisateur actuellement connecté avec app.user et on va ensuite chercher l’image qu’il a la relation avec cette utilisatrice s’il n’y en a pas alors une image de base sera affiché.

Voici le schéma complet de la base de données. Veuillez noter que la base de données est modifiée dès que de nouveaux besoins se présentent. Actuellement, il manque une relation entre la table « mark » (table regroupant les avis des utilisateurs et la table) et « place » (correspond aux places disponibles pour un voyage). Cette relation permet de connaître les passagers qui ont noté le conducteur.

Apparté sur les relations : Les relations "One-to-Many" et "Many-to-One" sont couramment utilisées dans les entités Symfony pour établir des liens entre différentes entités qu'on peut voir sur le schéma avec des lignes reliants les tables.

Dans une relation One-to-Many, une entité est liée à plusieurs autres entités. Par exemple, dans le contexte d'un blog, un article peut avoir plusieurs commentaires, mais un commentaire ne pourra pas être lié à d'autre article que celui commenté. Inversement, dans une relation Many-to-One..

il existe d'autres relations comme le One-To-One et Many-To-Many mais qui sont beaucoup moins utilisées mais peuvent s'avérer utiles, comme pour une relation entre un utilisateur et son image de profil ici on utilisera la relation One-To-One car une image est relié à un utilisateur et un utilisateur ne peut avoir qu'une image

Ces relations permettent de modéliser des associations complexes entre les entités, offrant ainsi une structure de données flexible et cohérente pour notre application Symfony. Elles facilitent la manipulation et l'accès aux données liées, en offrant des méthodes pratiques pour naviguer et interagir avec les entités associées.