在laravel api中对关系资源进行分页
Posted
技术标签:
【中文标题】在laravel api中对关系资源进行分页【英文标题】:paginate relational resource in laravel api 【发布时间】:2021-11-18 21:04:20 【问题描述】:我有两个模型,User
和 Comment
,每个 User
可以有多个 Comment
,我可以在 User
上调用 paginate(3)
并在每页输出中获得 3 个 User
,但我需要对于 UserCollection 中的 cmets,与 User
相同。
是否可以通过分页来限制 UserCollection
提供的 cmets?
【问题讨论】:
【参考方案1】:是的,您只需将 pageName 的第三个参数添加到 paginate 方法中即可区分它们。
类似:
$users->paginate($perPage, ['*'], 'users')
$comments->paginate($perPage, ['*'], 'comments_'. $user_id)
https://laravel.com/api/8.x/Illuminate/Database/Eloquent/Builder.html#method_paginate
注意:虽然您可以这样做,但我个人只会获取前 3/5 cmets,然后有一个显示 click to load more
的按钮,然后有一个单独的路由,您可以通过 AJAX 请求调用以获取它们。
【讨论】:
你能说哪种方法更好用吗?哪个是标准的?使用 ajax 还是使用分页? 在这种情况下,我会使用 AJAX 请求来获取任何额外的 cmets,因为它更容易 10 倍,并且它会有更多的可读性和可扩展性代码以上是关于在laravel api中对关系资源进行分页的主要内容,如果未能解决你的问题,请参考以下文章