web-dev-qa-db-fra.com

Sélectionnez les 10 premières lignes - Laravel Eloquent

Jusqu'à présent, j'ai le modèle suivant:

class Listing extends Eloquent {
     //Class Logic HERE
}

Je veux une fonction de base qui récupère les 10 premières lignes de mon tableau "listings" et les transmet à la vue (via un contrôleur?).

Je sais qu’il s’agit d’une tâche très élémentaire, mais je ne trouve pas de guide simple qui explique, étape par étape, comment afficher un ensemble de résultats de base, tout en détaillant les éléments requis dans les fichiers de modèle, de contrôleur et de vue.

44
Jonnerz

Tout d'abord, vous pouvez utiliser un paginateur. C'est aussi simple que:

$allUsers = User::paginate(15);

$someUsers = User::where('votes', '>', 100)->paginate(15);

Les variables contiendront une instance de la classe Paginator. toutes vos données seront stockées sous la clé data.

Ou vous pouvez faire quelque chose comme:

Anciennes versions Laravel.

Model::all()->take(10)->get();

Nouvelle version Laravel.

Model::all()->take(10);

Pour plus de lecture, considérez ces liens:

89
Vit Kos

La manière la plus simple de laravel 5 est:

$listings=Listing::take(10)->get();

return view('view.name',compact('listings'));
19
Luca C.

Une autre façon de faire consiste à utiliser une méthode limit:

Listing::limit(10)->get();

Cela peut être utile si vous n'essayez pas d'implémenter la pagination, mais si vous renvoyez par exemple 10 lignes aléatoires d'une table:

Listing::inRandomOrder()->limit(10)->get();
12
Amade