meta data for this page
Laravel
Query Builder / Eloquent
(Constructeur de requête)
Documentation
Permet de faire des requêtes pour retrouver des enregistrements dans la base de données
Retrouver tous les enregistrements
1 |
$posts = Post::get(); |
1 2 3 |
foreach ( $posts as $post ) { echo $post ->title; } |
Retrouver un enregistrement
1 |
$post = Post::where( 'title' , 'Titre de mon article' )->first(); |
1 |
echo $post ->title; |
Si on veut seulement une valeur, comme la date de création par exemple
1 |
$post = Post::where( 'title' , 'Titre de mon article' )->value( 'created_at' ); |
Récupérer une liste de valeur
1 |
$titles = Post::pluck( 'title' ); |
1 2 3 |
foreach ( $titles as $title ) { echo $title ; } |
Fonction d'agrégation
1 2 3 |
$posts = Post:: count (); $posts = Post::max( 'created_at' ); $posts = Post::min( 'created_at' ); |
avg
pour calculer la moyenne et sum
pour la calculer la somme.
Select
Sélectionne seulement le titre et la date de création et renomme la date de création par “date”
1 |
$posts = Post::select( 'title' , 'created_at as date' )->get(); |
Where
Sélectionne des enregistrements suivant des conditions
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
$posts = Post::where( 'title' , '=' , 'article 1' )->get(); $posts = Post::where( 'title' , 'article 1' )->get(); // le signe = peut être enlevé $posts = Post::where( 'title' , 'LIKE' , 'article%' )->get(); $posts = Post::where( 'created_at' , '<' , '2019-03-25' )->get(); $posts = Post::where( 'created_at' , '>' , '2019-03-25' )->get(); //On peut aussi passer un tableau de condition dans le Where $posts = Post::where([ [ 'title' , '=' , 'mon article' ], [ 'created_at' , '>' , '2018-03-25' ] ])->get(); |
Autres exemples avec Where ⇒ https://laravel.com/docs/5.2/queries#where-clauses
Order
Classe les titres de articles par ordre alphabétique
1 |
$posts = Post::orderBy( 'title' , 'asc' )->get(); |
Classe les titres de articles par date de création
1 2 |
$posts = Post::latest()->get(); // plus récent en premier $posts = Post::oldest()->get(); // plus vieux en premier |
latest()
et oldest()
utilisent le champ created_at
pour classer les éléments.
C'est un raccourci pour orderBy('created_at', 'asc')