Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在laravel中为集合和查询生成器分页_Laravel_Performance_Vue.js_Pagination_Inertiajs - Fatal编程技术网

如何在laravel中为集合和查询生成器分页

如何在laravel中为集合和查询生成器分页,laravel,performance,vue.js,pagination,inertiajs,Laravel,Performance,Vue.js,Pagination,Inertiajs,我的requests表中有+30K项,所以我决定对向用户显示请求的页面进行后端分页。问题是,每个用户都没有查看所有请求的权限,这是基于很多因素,我创建了一个函数,返回用户是否有查看请求的权限 问题是在处理中的请求中,我必须将处理中的每个请求传递给函数以获得权限(处理请求是一小部分项)。所以我在处理请求时使用了filter函数,它给了我10个项目的集合。现在我想合并一大组项目,即关闭的请求,可以是+10K个项目,与正在处理的项目合并,并使用分页功能 我该怎么做 此函数将进一步解释我想说的内容: p

我的requests表中有+30K项,所以我决定对向用户显示请求的页面进行后端分页。问题是,每个用户都没有查看所有请求的权限,这是基于很多因素,我创建了一个函数,返回用户是否有查看请求的权限

问题是在处理中的请求中,我必须将处理中的每个请求传递给函数以获得权限(处理请求是一小部分项)。所以我在处理请求时使用了filter函数,它给了我10个项目的集合。现在我想合并一大组项目,即关闭的请求,可以是+10K个项目,与正在处理的项目合并,并使用分页功能

我该怎么做

此函数将进一步解释我想说的内容:

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个分页。创建一个新的集合,将它们都推入其中。然后使用这个方法