Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
796 views
in Technique[技术] by (71.8m points)

php - Laravel Pagination

How can I create a pagination in laravel?

My Model

Post

function comments() {

    return $this->hasMany('Comment')
                ->orderBy('created_at', 'desc');
}

Comment

function posts(){

    return $this->belongsTo('Post');
}

User

function posts(){

    return $this->hasMany('Post');
}


function comments(){

    return $this->hasMany('Comment');
}

UserController

$user = User::find(1); //this will give me all the user's post and comment details

//i know I can do  $user = User::paginate(30) to get 30 user per page

What I want to Achieve

I want to create a pagination of 10 comment per page.

Thanks for your help in advance.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

You have two options: you can call paginate() on the relationship query, or you can manually create a paginator.

Call paginate() on the relationship query (uses the relationship function):

$user = User::find(1);
$comments = $user->comments()->paginate(10);

Manually create a paginator (uses the relationship attribute):

$user = User::find(1);
$paginator = Paginator::make($user->comments, $user->comments->count(), 10);

Pagination documentation can be found here.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...