Laravel 分页

Posted

技术标签:

【中文标题】Laravel 分页【英文标题】:Laravel Pagination 【发布时间】:2015-08-12 15:10:30 【问题描述】:

如何在 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');

用户控制器

$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 条评论的分页。

提前感谢您的帮助。

【问题讨论】:

【参考方案1】:

您有两个选择:您可以在关系查询上调用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找到。

【讨论】:

嗨@patricus 感谢您的快速响应。有什么方法可以让用户在模型中分页? @CannotFindSymbol 很抱歉,我不确定你在问什么。【参考方案2】:

试试这个,

$only10cmets = User::with('cmets')->分页(10);

如果您在分页中使用下一个、上一个链接,则使用 simplePaginate。

$only10cmets = User::with('cmets')->simplePaginate(10);

希望这会有所帮助。

【讨论】:

以上是关于Laravel 分页的主要内容,如果未能解决你的问题,请参考以下文章

laravel5自定义分页

laravel 分页小技巧(不使用laravel自带的分页情况下)

Laravel分页

Laravel分页

[ Laravel 5.5 文档 ] 数据库操作 —— 在 Laravel 中轻松实现分页功能

Laravel 5 - 手动分页