如何从 Laravel 中的单个请求对相关 Table 进行分页

How to Paginate Related Table From a Single Request in Laravel

我是 Laravel 和 PHP 的新手,想知道如何在下面的示例中对推文数据进行分页:

Route::get("/users/{user}", function (User $user) {
    return $user->only(
        "id",
        "name",
        "username",
        "avatar",
        "profile",
        "location",
        "link",
        "linkText",
        "created_at",
        "tweets"
    );
});

tweets table 与 user 有关,所以我可以说 $user->tweets()->paginate(10); 但我怎么 return 连同我的 only() 方法?另外,有没有办法让我 return 多个东西并且仍然可以在我的前端访问它们?

您可能想查看 API resources

only() 函数将在 查询完成后使用,因为即使您已从数据库中检索数据,它也会从您的模型中剥离数据。您对 tweets() 的调用使其成为一个查询对象(没有 () 它将解析为一个集合对象),因此您仍然可以链接查询函数。

我想您也可以调用 $user->tweets()->select(['id', 'user_id', 'body', ...])->paginate(10); 以仅 select 您需要的列。

如果您想要更可定制的分页,您可以尝试使用 limitoffsetskiptake 然后按照建议查看 API Resource以上