如何从 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 您需要的列。
如果您想要更可定制的分页,您可以尝试使用 limit
和 offset
或 skip
和 take
然后按照建议查看 API Resource以上
我是 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 您需要的列。
如果您想要更可定制的分页,您可以尝试使用 limit
和 offset
或 skip
和 take
然后按照建议查看 API Resource以上