Mysql
 sql >> Database >  >> RDS >> Mysql

AngularJS e Laravel 4.2 recuperare i dati da tabelle multiple e unirle

La forma più semplice di recupero dei dati che puoi eseguire qui è eseguire le seguenti operazioni:

$travelBills = Travelbill::with(['code','allowance'])->get();

Questo è Eager Loading ed eseguirà tre query:

  • Carica tutte le bollette di viaggio
  • Carica tutti i codici che hanno chiavi esterne corrispondenti a tutti gli ID delle bolle di viaggio e assegnali a ciascun modello di viaggio
  • Fai lo stesso con le indennità

Quello che avrai alla fine è che ogni modello di Travelbill avrà già un modello di Codice e Indennità associato, che ti consentirà di lavorare come:

echo $travelBill->cost->SekInklMoms;

per uno dei Travelbills che hai caricato. Nota un paio di cose nella prima query:

  • Le fatture di viaggio non filtrati, a questo punto li stiamo caricando tutti.
  • Lo stiamo facendo semplicemente , non necessariamente efficiente. Raccomando prima di prendere confidenza con il caricamento delle relazioni prima di passare a cose come i join (che in ogni caso rompono lo spirito di Eloquent ORM)