Eloquent ORM : sélectionner tous les enregistrements avec all()

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.

▼Publicité

Ex :

Contrôleur Laravel (PHP)

$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 :

Résultat à l'écran

Collection {#177 ▼

  #items: array:2 [▶]

}

ou, après avoir déroulé les flèches :

Résultat à l'écran

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

      ]

      ...

    }

  ]

}

Tri

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.

Contrôleur Laravel (PHP)

$categories = Categorie::orderBy('description')->get();

Boucle

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 :

Contrôleur Laravel (PHP)

foreach($categories as $categorie) {

    ...

}

ou, si c'est la vue qui doit effectuer la boucle :

Vue Laravel (Blade)

@if (count($categories))

    @foreach($categories as $categorie)

        ...

    @endforeach

@else

    <p>Il n'y a aucune catégorie.</p>

@endif

Pour plus d'information

« Eloquent: Getting Started ». Laravel. https://laravel.com/docs/master/eloquent

« Collections ». Laravel. https://laravel.com/docs/master/collections#method-all

Catégories