我正在使用Laravel5.8,我正在尝试使用AJAX进行分页,它在50%的时间内工作。实际上,当我点击底部的链接页面时,它完美地呈现了数据,但我的问题是,当我第二次按下底部的分页链接时,它会重新刷新页面。我不希望页面重新加载一半的时间,我点击分页页。
这是我的密码:
ManagerController.php
public function index()
{
$users = User::paginate(30);
if (Request::ajax()) {
return Response::json(View::make
我有一个页面,其中我列出了一些基于搜索数据的产品。所显示的产品不是保存在本地数据库中,而是使用API实时获取的(这就是它必须保持的方式)。
当页面加载时,它首先列出来自一个提供者的产品(第一个API调用)。在页面完成加载后,使用Ajax对第二个提供者进行第二次调用,产品列表将出现并附加到页面中。
考虑到每个api调用都需要2+秒才能返回数据,我不能在页面加载上留下超过一个调用。
我的问题是:在这种情况下如何分页?
Idea 1
执行静态分页:分页是在浏览器中完成的。这确实很简单,但是在大的结果集上,它可能会减慢设备的速度,甚至使页面崩溃。
Idea 2
在第一次加载时,缓存所有结果并使用缓存文
我想知道如何在Laravel中分页调用关系的数据,我不想在同一条路径上加载所有的信息,这样会使负载更重。
我有类别和产品,在资源类别中,我通过关系调用产品,但我需要做的是对这些产品进行分页。
我需要在路由api/分类/1中,它返回类别的名称和特定类别上的产品(它正在工作),但是需要分页的那些产品。
在我的类别控制器中:
public function show($id)
{
$category = Category::findOrFail($id);
return new CategoryResource($category);
}
在我的分类模型中,我有:
public
在Laravel 9中,我试图将子查询的结果添加到查询中(因为没有更好的措辞),我被卡住了。更具体地说,我正在尝试加载所有产品,同时添加关于当前用户是否购买了该产品的信息。
我为什么要这么做?我目前正在加载所有产品,然后加载所有购买的产品,然后比较2,以确定用户是否购买了产品,但这意味着额外的查询,我想避免。为了这个问题假装不存在分页(因为当分页时,多个查询的影响会大大减少)。
两个表users和products之间有很多到多个关系,因此在模型上定义了这些关系:
public function products()
{
return $this->belongsToMany(Pr