ChatGPT解决这个技术问题 Extra ChatGPT

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.


R
Ruitjes

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:

pagination docs

passing data to views

Eloquent basic usage

A cheat sheet


Thank you Vit, I was unaware Laravel had this feature and it's exactly what I am looking for.
I think you'll find its: ->take(10)->get();
I think the get(); argument has now gone on the newer versions laravel
I used Model::take(10)->get() without problems on 5.2
Model::take(10)->get(); is not working in laravel 5.4
L
Luca C.

The simplest way in laravel 5 is:

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

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

I will say, perfect answer.
A
Amade

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();

s
saber tabatabaee yazdi

this worked as well IN LARAVEL 8

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