Relazioni hasMany e belongsToMany in pratica
Pillar article sul trait Relation e le quattro tipologie di relazione supportate dall'ORM.
1 min di letturaORM
Luigi Iadicola, Programmatore - Napoli
Relazioni senza magia
Il trait Relation aggiunge ai modelli quattro metodi per definire relazioni: hasOne(), hasMany(), belongsTo() e belongsToMany(). Le relazioni many-to-many passano attraverso una pivot table, come nel caso di progetti e tecnologie.
Le relazioni restituiscono modelli idratati, non array grezzi. Questo significa che il risultato di $project->technologies() è un array di istanze Technology con tutti i metodi del modello disponibili.
Esempi reali dal progetto
Project::belongsTo(Partner::class)— ogni progetto appartiene a un partnerPartner::hasMany(Project::class)— un partner ha molti progettiProject::belongsToMany(Technology::class, ...)— relazione N:N via pivotArticleeTag— stessa logica many-to-many tramitearticle_tag
Il sistema è esplicito: le foreign key e la pivot table vanno dichiarate. Nessuna convenzione nascosta che funziona solo se i nomi delle tabelle seguono un pattern specifico.
Hai lo stesso problema in azienda?
Raccontami cosa non va e da quando. Guardo la situazione con te prima di proporre qualsiasi intervento.
Ricevi il prossimo articolo
Una mail per ogni articolo nuovo, nient'altro. Ti disiscrivi con un clic dal link in fondo a ogni email.