Jonnerz
Jonnerz

Reputation: 1161

Select the first 10 rows - Laravel Eloquent

So far I have the following model:

class Listing extends Eloquent {
     //Class Logic HERE
}

I want a basic function that retrieves the first 10 rows of my table "listings" and passes them on to the view (via a controller?).

I know this a very basic task but I can't find a simple guide that actually explains step-by-step how to display a basic set of results, whilst detailing what is required in the model, controller and view files.

Upvotes: 77

Views: 239337

Answers (5)

saber tabatabaee yazdi
saber tabatabaee yazdi

Reputation: 4959

this worked as well IN LARAVEL 8 and 9 and 10 and above

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

Upvotes: 7

Volker Trotte
Volker Trotte

Reputation: 17

This also worked in Laravel 9

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

Upvotes: 0

Vit Kos
Vit Kos

Reputation: 5755

First you can use a Paginator. This is as simple as:

$allUsers = User::paginate(15);

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

The variables will contain an instance of Paginator class. all of your data will be stored under data key.

Or you can do something like:

Old versions Laravel.

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

Newer version Laravel.

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

For more reading consider these links:

Upvotes: 164

Amade
Amade

Reputation: 3998

Another way to do it is using a limit method:

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

This can be useful if you're not trying to implement pagination, but for example, return 10 random rows from a table:

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

Upvotes: 27

Luca C.
Luca C.

Reputation: 12584

The simplest way in laravel 5 is:

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

return view('view.name',compact('listings'));

Upvotes: 29

Related Questions