Laravel分页

时间:2015-05-29 16:43:12

标签: php laravel laravel-pagination

如何在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条评论的分页。

提前感谢您的帮助。

2 个答案:

答案 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);

希望这有帮助。