Effettuare una Query in Laravel... in sei modi diversi!

Sei modi diversi di effettuare una query, tra Eloquent ed il Query Builder. Con Laravel hai l'imbarazzo della scelta!
francesco
Luigi Migliardi
01/10/2014 in Tips

Laravel ti permette di effettuare le query verso il database in tanti modi diversi.

Ho così preparato una lista, in modo tale da farti avere un riferimento più o meno completo di quelle che sono le possibilità.

Supponiamo, innanzitutto, di avere una tabella con i seguenti campi:

Users:

  • id;
  • name;

Posts:

  • id;
  • content;
  • user_id;

Nota: supponiamo anche di aver definito le relazioni nei model Eloquent.

Arriviamo quindi ai metodi. Ecco le varie possibilità:

/* Primo Metodo */
/* Semplicemente utilizzando Eloquent */
$user=User::find(1);
$posts=$user->posts;
  
/* Secondo Metodo */
/* Eloquent con Eager loading */
$posts=User::with('posts')->find(1);

/* Terzo Metodo */
/* Eloquent con Lazy Eager loading */
$posts=User::find(1)->load('posts');

/* Quarto Metodo */ 
/* Eloquent con Query Builder  */
$posts=User::join('posts','users.id','=','posts.user_id')->where('users.id',1)->get();

/* Quinto Metodo */
/* Query Builder senza Eloquent */
$posts=DB::table('users')->join('posts','users.id','=','posts.user_id')->where('users.id',1)->get();

/* Sesto Metodo */
/* SQL */
$posts=DB::select('select * from users join posts on users.id = posts.user_id where users.id = 1');