Skip to content

Latest commit

 

History

History
73 lines (71 loc) · 2.09 KB

09-eloquent-101.md

File metadata and controls

73 lines (71 loc) · 2.09 KB

Eloquent

Nous allons voir quelques requêtes basiques. Démarrez tinker et tester ces lignes :

Select all
User::all();

Laravel retourne automatiquement les résultats sous forme de collection eloquent, quin offre de méthodes pour travailler et qui peut être itéré comme un tableau classique
Si la requête ne retourne rien, on obtiendra une collection vide.

Select where
$id = 1;
User::where('id', $id)->get();
User::where('admin', true)->get();
User::where('name', 'like', 'Kale')->get();
User::where('name', 'like', '%Kale%')->get();
User::where('id', '>', '4')->get();
Select where order by
User::where('admin', false)->orderBy('id', 'DESC')->get();

On peut aussi demander autre chose qu'une collection :

$id = 1;
User::where('admin', true)->get()->toArray();
User::where('id', $id)->get()->toJson();
Select limit
User::limit(5)->get();
User::take(2)->get()->toJson();

Un tri un peu plus complexe, on obtient une collection, ensuite on la filtre :

$users = User::all();
$users->takeUntil(function($user) { 
    return $user->id >= 3;
});

On peut enchaîner les méthodes :

User::where('admin', false)->orderBy('id', 'desc')->limit(5)->get();
User::where('admin', false)->orderBy('name', 'desc')->take(3)->get();

On peut obtenir uniquement la première resources trouvées :

User::first();
User::where('name', 'Kale Williamson')->first();
// ou le raccourci :
User::firstWhere('name', 'Kale Williamson');

On peut aussi faire firstOr() :

User::where('id', '=', 12)->firstOr(function() {
    return User::where('name', 'like', '%Miss%')->get();
});

On peut demander de trouver une resource directement où de renvoyer null

$id = 12;
User::find($id);
// ou plusieurs resources ...
$ids = [2, 5, 7];
Article::find($ids);

On peut demander la même chose mais avec un message d'erreur si la resource n'existe pas :

User::findOrFail($id);

Il est naturellement impossible de lister toutes les méthodes disponibles ici, la documentation est complète et il vous faudra la lire.