Beides geht Hand in Hand. Das eine ist ohne das andere unvollständig. Wenn Sie möchten, dass Ihre Beziehungen richtig funktionieren, müssen Sie diese beiden Dinge definieren.
Wenn Sie den Fremdschlüssel gerade in einer Migrationsdatei definiert haben, funktioniert die Beziehung nur für den Fall, dass Sie eine Rohabfrage schreiben. Es wird bei Ihren Modellen nicht funktionieren, da Sie nichts über Beziehungen in Ihren Modellen geschrieben haben.
Also, sobald Sie hasMany
schreiben in einem Ihrer Modelle und die entsprechende Funktion in dem anderen Modell, nur dann wissen Ihre Modelle voneinander, und dann können Sie Dinge sowohl über Ihr Modell als auch über Ihre Datenbank erfolgreich abfragen.
Beachten Sie auch, dass Sie über hasMany
richtig definierte Beziehungen haben und belongsTo
in Ihren Modellen, haben aber keinen Fremdschlüssel in der Tabelle des Modells angegeben, das belongsTo
ist anderen Tabelle funktionieren Ihre Beziehungen nicht.
Kurz gesagt, beide sind gleichermaßen obligatorisch.