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.
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):Manually create a paginator (uses the relationship attribute):
Pagination documentation can be found here.
Try this,
$only10comments = User::with('comments')->paginate(10);
If you use next, previous links in pagination, then use simplePaginate.
$only10comments = User::with('comments')->simplePaginate(10);
Hope this helps.