如何在laravel中创建分页?
我的模特
发表
function comments() {
return $this->hasMany('Comment')
->orderBy('created_at', 'desc');
}
注释
function posts(){
return $this->belongsTo('Post');
}
用户
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
我想要实现的目标
我想在每页上创建10条评论的分页。
提前感谢您的帮助。
答案 0 :(得分:3)
您有两种选择:可以在关系查询中调用paginate()
,也可以手动创建分页器。
在关系查询上调用paginate()
(使用关系函数):
$user = User::find(1);
$comments = $user->comments()->paginate(10);
手动创建一个分页器(使用关系属性):
$user = User::find(1);
$paginator = Paginator::make($user->comments, $user->comments->count(), 10);
可以找到分页文档here。
答案 1 :(得分:1)
试试这个,
$ only10comments = User :: with('comments') - > paginate(10);
如果您在分页中使用next,previous链接,则使用simplePaginate。
$ only10comments = User :: with('comments') - > simplePaginate(10);
希望这有帮助。