【问题标题】:paginate relational resource in laravel api在laravel api中对关系资源进行分页
【发布时间】:2021-11-18 21:04:20
【问题描述】:

我有两个模型,UserComment,每个 User 可以有多个 Comment,我可以在 User 上调用 paginate(3) 并在每页输出中获得 3 个 User,但我需要对于 UserCollection 中的 cmets,与 User 相同。 是否可以通过分页来限制 UserCollection 提供的 cmets?

【问题讨论】:

    标签: laravel pagination laravel-collection laravel-resource


    【解决方案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 倍,并且它会有更多的可读性和可扩展性代码
    猜你喜欢
    • 2019-11-30
    • 1970-01-01
    • 2019-09-09
    • 1970-01-01
    • 2019-06-23
    • 2021-11-09
    • 2019-10-02
    • 2019-10-20
    • 1970-01-01
    相关资源
    最近更新 更多