Laravel在相交方法顶部分页

时间:2018-11-06 05:29:10

标签: laravel laravel-5 eloquent

我在Laravel中有以下数据库查询。

    $filteredBundles = $bundlesByPublisher->intersect($bundlesByPublication);

我需要在paginate变量上使用filteredBundles方法。

bundlesByPublisher返回使用方法get()的数据库查询,与bundlesByPublication相似。

有什么办法可以使分页到这个路口吗?

预先感谢

3 个答案:

答案 0 :(得分:2)

集合没有[...] string exampleString = new StringFormat.RemoveCharFromString(inputString, '%'); [...] 方法,但是如果您想对集合进行分页,可以尝试

paginate()

但是当数据库上有许多记录时,这并不是一个好的性能。最好的选择是不要对返回的集合使用相交,而是在查询中进行过滤。

答案 1 :(得分:1)

不,您不能在交叉路口上使用常规的 n=int(input()) l=[] t=0 u=0 for i in range(0,n): p=int(input()) l.append(p) q=l[0] print(q) for j in range(1,n): if(len(l[0])==len(l[j])): summ=0 sum1=0 while(q>0): { t=q%10 summ=summ+t q=q/10; } while(l[j]>0): { u=l[j]%10; sum1=sum1+u l[j]=l[j]/10 } if(summ=sum1): print(l[j]) else: continue 方法,因为paginate()用于数据库查询,而paginate()是一个集合。

您可以(而且应该 )要做的是对数据库结果进行分页。对于您而言,这可以通过向数据库查询中添加intersect()子句并从相交列表中为其指定ID数组来实现。

答案 2 :(得分:0)

我创建了一个私有函数,将$filteredBundles->toArray()传递给了

输出。

private function _getPaginatedItems($items): LengthAwarePaginator
    {
        $currentPage = LengthAwarePaginator::resolveCurrentPage();
        $perPage = 10;
        $currentItems = array_slice($items, $perPage * ($currentPage - 1), $perPage);

        $paginatedItems = new LengthAwarePaginator($currentItems, count($items), $perPage, $currentPage, ['path' => request()->url(), 'query' => request()->query()]);
        return $paginatedItems;
    }

这将创建一个pagination实例,并且可以正常工作。