🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
有几种方法来分页对象。最简单的是在搜索构建器使用 paginate 方法或 Eloquent 模型。 ### 对数据库结果分页 `$users = DB::table('users')->paginate(15);` > 注意: 目前 Laravel 使用 groupBy 来做分页操作无法有效率的执行,如果您需要使用 groupBy 来分页数据集,建议您手动查找数据库,并使用 Paginator::make。 ### 对 Eloquent 模型分页 您也可以对 Eloquent 模型分页: ~~~ ~~~ $allUsers = User::paginate(15); $someUsers = User::where('votes', '>', 100)->paginate(15); ~~~ ~~~ 发送给 paginate 方法的参数是您希望每页要显示的对象选项数目,只要您取得查找结果后,您可以在视图中显示,并使用 render 方法去建立分页链接: ~~~ ~~~ <div class="container"> <?php foreach ($users as $user): ?> <?php echo $user->name; ?> <?php endforeach; ?> </div> <?php echo $users->render(); ?> ~~~ ~~~ 这就是所有建立分页系统的步骤了!您会注意到我们还没有告知 Laravel 我们目前的页面是哪一页,这个信息 Laravel 会自动帮您做好。 | 您也可以透过以下方法获得额外的分页信息: | |-----| | currentPage | | lastPage | | perPage | | hasMorePages | | url | | nextPageUrl | | total | | count | ### 「简单分页」 如果您只是要在您的分页视图显示「上一页」和「下一页」链接,您有个选项 simplePaginate 方法来执行更高效率的搜索。当您不需要精准的显示页码在视图上时,这个方法在较大的数据集非常有用: `$someUsers = User::where('votes', '>', 100)->simplePaginate(15);` ### 手动建立分页 有的时候您可能会想要从数组中对象手动建立分页实体, 您可以根据您的需要通过 Illuminate\Pagination\Paginator 或 Illuminate\Pagination\LengthAwarePaginator 实体来建立。 ### 自定义分页 URL 您还可以透过 setPath 方法自定义使用的 URL: ~~~ ~~~ $users = User::paginate(); $users->setPath('custom/url'); ~~~ ~~~ 上面的例子将建立 URL,类似以下内容: `http://example.com/custom/url?page=2`