Mysql
 sql >> Base de données >  >> RDS >> Mysql

Migration clé étrangère vs relations éloquentes à Laravel

Les deux vont de pair. L'un est incomplet sans l'autre. Si vous voulez que vos relations fonctionnent correctement, vous devez définir ces deux éléments.

Si vous venez de définir la clé étrangère dans un fichier de migration, la relation fonctionnera juste au cas où vous écririez une requête brute. Cela ne fonctionnera pas sur vos modèles puisque vous n'avez rien écrit sur les relations dans vos modèles.

Donc, dès que vous écrivez hasMany dans l'un de vos modèles et la fonction correspondante dans l'autre modèle, alors seulement vos modèles se connaissent, et vous pouvez alors interroger avec succès des éléments via votre modèle ainsi que dans votre base de données.

Notez également que si vous avez correctement défini des relations via hasMany et belongsTo dans vos modèles, mais n'avez pas fourni de clé étrangère dans la table du modèle qui belongsTo autre table, vos relations ne fonctionneront pas.

En bref, les deux sont également obligatoires.