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 partner
  • Partner::hasMany(Project::class) — un partner ha molti progetti
  • Project::belongsToMany(Technology::class, ...) — relazione N:N via pivot
  • Article e Tag — stessa logica many-to-many tramite article_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.

RaccontameloRispondo entro un giorno lavorativo.
Argomenti:
Condividi:LinkedIn

Ricevi il prossimo articolo

Una mail per ogni articolo nuovo, nient'altro. Ti disiscrivi con un clic dal link in fondo a ogni email.