我在Laravel中有以下数据库查询。
$filteredBundles = $bundlesByPublisher->intersect($bundlesByPublication);
我需要在paginate
变量上使用filteredBundles
方法。
bundlesByPublisher
返回使用方法get()
的数据库查询,与bundlesByPublication
相似。
有什么办法可以使分页到这个路口吗?
预先感谢
答案 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
实例,并且可以正常工作。