Entrambi vanno di pari passo. Uno è incompleto senza l'altro. Se vuoi che le tue relazioni funzionino correttamente, devi definire entrambe queste cose.
Se hai appena definito la chiave esterna in un file di migrazione, la relazione funzionerebbe nel caso in cui tu scriva una query grezza. Non funzionerà sui tuoi modelli poiché non hai scritto nulla sulle relazioni nei tuoi modelli.
Quindi, non appena scrivi hasMany
in uno dei tuoi modelli e la funzione corrispondente nell'altro modello, solo allora i tuoi modelli si conoscono e quindi puoi interrogare con successo le cose attraverso il tuo modello così come nel tuo database.
Nota anche che se hai definito correttamente le relazioni tramite hasMany
e belongsTo
nei tuoi modelli, ma non hai fornito la chiave esterna nella tabella del modello che belongsTo
altro tavolo, le tue relazioni non funzioneranno.
In breve, entrambi sono ugualmente obbligatori.