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() e 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 e 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.