如何在laravel中为集合和查询生成器分页
我的requests表中有+30K项,所以我决定对向用户显示请求的页面进行后端分页。问题是,每个用户都没有查看所有请求的权限,这是基于很多因素,我创建了一个函数,返回用户是否有查看请求的权限 问题是在处理中的请求中,我必须将处理中的每个请求传递给函数以获得权限(处理请求是一小部分项)。所以我在处理请求时使用了filter函数,它给了我10个项目的集合。现在我想合并一大组项目,即关闭的请求,可以是+10K个项目,与正在处理的项目合并,并使用分页功能 我该怎么做 此函数将进一步解释我想说的内容:如何在laravel中为集合和查询生成器分页,laravel,performance,vue.js,pagination,inertiajs,Laravel,Performance,Vue.js,Pagination,Inertiajs,我的requests表中有+30K项,所以我决定对向用户显示请求的页面进行后端分页。问题是,每个用户都没有查看所有请求的权限,这是基于很多因素,我创建了一个函数,返回用户是否有查看请求的权限 问题是在处理中的请求中,我必须将处理中的每个请求传递给函数以获得权限(处理请求是一小部分项)。所以我在处理请求时使用了filter函数,它给了我10个项目的集合。现在我想合并一大组项目,即关闭的请求,可以是+10K个项目,与正在处理的项目合并,并使用分页功能 我该怎么做 此函数将进一步解释我想说的内容: p
public function getRequests(){
$closedRequests = request::join('request_logs', 'request_logs.request_id', '=', 'requests.id')
->select("requests.id", "requests.user_id", "requests.form_type", "requests.created_at", "requests.request_status")
->whereNotIn('request_status', [-2, 0])
->where('request_logs.user_id', Auth::user()->id);
$processingRequests = request::select("requests.id", "requests.user_id", "requests.form_type", "requests.created_at", "requests.request_status")
->where('request_status', 0)
->get()
->filter(function ($request) {
return FormsController::checkUserPermissionToConsultForm($request, true);
});
$closedRequests = $closedRequests->union($processingRequests)
->orderBy('created_at', 'desc')
->paginate(5);
return $closedRequests;
}
上面的函数是我试图做的,但是它产生了一个错误
Call to a member function getBindings() on array
您可以创建一个集合并将项推送到其中,然后使用创建一个类
执行此操作后,如何将查询生成器与集合分页合并?我寻找的结果是集合和查询构建器都有1个分页。创建一个新的集合,将它们都推入其中。然后使用这个方法