Dans une application Laravel, la méthode all(), appliquée directement au modèle de données, permet de retrouver toutes les données de la table associée au modèle.
Ex :
$categories = Categorie::all();
La valeur de retour de all() est une instance de Illuminate\Database\Eloquent\Collection. Dans l'exemple précédent, $categories est une collection d'objets de type Categorie.
Un dump and die de la variable $categories nous le confirmera :
Ex :
Collection {#177 ▼
#items: array:2 [▶]
}
ou, après avoir déroulé les flèches :
Collection {#177 ▼
#items: array:2 [▼
0 => Categorie {#178 ▼
#primaryKey: "id"
...
#attributes: array:4 [▼
"id" => 1
"description" => "Plantes annuelles"
"created_at" => null
"updated_at" => null
]
...
}
1 => Categorie {#179 ▼
#primaryKey: "id"
...
#attributes: array:4 [▼
"id" => 2
"description" => "Plantes vivaces"
"created_at" => null
"updated_at" => null
]
...
}
]
}
Pour obtenir tous les enregistrements triés dans un ordre donné, on n'a pas besoin de travailler avec all(). On utilisera plutôt la méthode orderBy() suivie de la méthode get() afin d'obtenir une collection.
$categories = Categorie::orderBy('description')->get();
Une fois qu'on a une collection d'objets, il est possible de boucler dans ses éléments. Autrement dit, on pourra boucler dans les résultats de la requête.
Ex :
foreach($categories as $categorie) {
...
}
ou, si c'est la vue qui doit effectuer la boucle :
@if (count($categories))
@foreach($categories as $categorie)
...
@endforeach
@else
<p>Il n'y a aucune catégorie.</p>
@endif
« Eloquent: Getting Started ». Laravel. https://laravel.com/docs/master/eloquent
« Collections ». Laravel. https://laravel.com/docs/master/collections#method-all
▼Publicité