liens entre différentes entités de la base de données : – Par exemple, un « User » peut avoir plusieurs « Posts », un « Post » peut avoir plusieurs « Comments », etc. Eloquent ORM, le système d’ORM de Laravel, facilite grandement la gestion de ces relations.
Les principaux relations:
-
HasOne: Un modèle a une relation un-à-un avec un autre modèle. (Exemple : Un utilisateur a un seul profil.)
-
BelongsTo: L’inverse de HasOne. Un modèle appartient à un seul modèle parent. (Exemple : Un commentaire appartient à un seul post.)
-
HasMany: Un modèle a une relation un-à-plusieurs avec un autre modèle. (Exemple : Un utilisateur a plusieurs posts.)
-
BelongsToMany: Une relation plusieurs-à-plusieurs, nécessitant une table de pivot. (Exemple : Un utilisateur peut aimer plusieurs posts, et un post peut être aimé par plusieurs utilisateurs.)
-
MorphTo: Une relation polymorphique, permettant à un modèle d’être lié à plusieurs types de modèles. (Exemple : Un commentaire peut être lié à un post, un utilisateur, etc.)
-
MorphOne et MorphMany: Les équivalents de HasOne et HasMany pour les relations polymorphiques.
Laravel utilise Eloquent ORM pour gérer les relations entre les entités de la base de données. Voici une explication des relations principales avec des exemples de code.
1. Relation HasOne : Relation Un-à-Un
Un modèle est lié à un autre modèle par une relation un-à-un.
Exemple : Un utilisateur a un seul profil
Fichier | Code |
---|---|
Modèle
|
|
Modèle
|
|
Migration |
|
Utilisation |
|
2. Relation BelongsTo : Relation Inverse Un-à-Un
Un modèle appartient à un autre modèle.
Exemple : Un commentaire appartient à un post
Fichier | Code |
---|---|
Modèle
|
|
Modèle
|
|
Utilisation |
|
3. Relation HasMany : Relation Un-à-Plusieurs
Un modèle est lié à plusieurs autres modèles.
Exemple : Un utilisateur peut avoir plusieurs posts
Fichier | Code |
---|---|
Modèle
|
|
Utilisation |
|
4. Relation BelongsToMany : Relation Plusieurs-à-Plusieurs
Deux modèles sont liés par une relation plusieurs-à-plusieurs avec une table de pivot.
Exemple : Un utilisateur peut aimer plusieurs posts, et un post peut être aimé par plusieurs utilisateurs
Fichier | Code |
---|---|
Migration Pivot |
|
Modèle
|
|
Modèle
|
|
Utilisation |
|
5. Relation Polymorphique : MorphTo
Un modèle peut être lié à plusieurs types de modèles différents.
Exemple : Un commentaire peut être lié à un post ou à une vidéo
Fichier | Code |
---|---|
Migration
|
|
Modèle
|
|
Modèle
|
|
Modèle
|
|
Utilisation |
|
6. MorphOne et MorphMany : Relations Polymorphiques Étendues
Exemple : Un utilisateur a une seule image de profil
Fichier | Code |
---|---|
Modèle
|
|
Modèle
|
|
Résumé
Laravel Eloquent facilite la gestion des relations entre entités grâce à des méthodes intuitives. Avec cette structure sous forme de tableaux, il est plus facile de visualiser et de comprendre l’implémentation des relations dans une application Laravel.