Laravel-无序合并和分页集合
我正在为一件相当困难的事情挣扎,希望你能帮助我。 现在我有以下几点:Laravel-无序合并和分页集合,laravel,collections,eloquent,paginator,Laravel,Collections,Eloquent,Paginator,我正在为一件相当困难的事情挣扎,希望你能帮助我。 现在我有以下几点: $ads = Ad::where('status', 1) ->whereIn('ad_type', [1, 2, 3]) ->where('expire_at', '>', date('Y-m-d H:i:s')) ->where('special_ad', 'standard_ad') ->orderByRaw(DB::raw("FIELD(ad_type,2,
$ads = Ad::where('status', 1)
->whereIn('ad_type', [1, 2, 3])
->where('expire_at', '>', date('Y-m-d H:i:s'))
->where('special_ad', 'standard_ad')
->orderByRaw(DB::raw("FIELD(ad_type,2,3,1)"));
信息:
这是工作,因为它是一个雄辩的收集,我可以分页这(需要我的无限卷轴)
但现在我想洗牌广告类型本身,意思是:
ad_类型1可以有30个条目。他们将按通常的顺序全部归还。每次运行此查询时,我都要洗牌这30个。
我想做->toArray();但同样,没有分页(分页只对有说服力的查询有效,对吗?)
然后我想,嘿,让我们合并这个。
但一旦我这样做了,返回的集合就不再是一个有说服力的集合,而是一个支持集合(对吗?我不是100%确定它是一个支持集合),因此分页不再有效
我读了很多关于如何解决这个问题的帖子,并想出了一个解决方案,那就是“创建我自己的paginator实例”
但见鬼,我还没那么好。我真的不知道,即使在学习了laravel文档之后,如何创建自己的分页器
您可能需要的重要信息:
使用Laravel 5.2
$ads
是动态的,这意味着根据具体情况,使用Ajax发送的请求在稍后可能会有所不同(可能会包含一些内容)
非常感谢您花时间阅读本文,希望您能通过解决这个特殊问题来帮助我和未来的读者
大家好,祝大家周末愉快。首先请注意:
分页不仅适用于数据库查询。您可以使用lengshawarepaginator
手动分页,但此处的关键字是manually。查询生成器(没有说服力)可以使用paginate
自动为您执行此操作
您可以通过执行以下操作来“洗牌”结果
$ads=Ad::where('status',1)
->其中('ad_类型',[1,2,3])
->其中('expire_at','>',date('Y-m-d H:i:s'))
->其中(‘特殊广告’、‘标准广告’)
->orderByRaw(“字段(ad_类型,2,3,1)”)
->orderByRaw(“兰德()”);
这将首先按ad_类型字段排序,然后按随机数(每行不同)排序作为第二排序。首先请注意:
分页不仅适用于数据库查询。您可以使用lengshawarepaginator
手动分页,但此处的关键字是manually。查询生成器(没有说服力)可以使用paginate
自动为您执行此操作
您可以通过执行以下操作来“洗牌”结果
$ads=Ad::where('status',1)
->其中('ad_类型',[1,2,3])
->其中('expire_at','>',date('Y-m-d H:i:s'))
->其中(‘特殊广告’、‘标准广告’)
->orderByRaw(“字段(ad_类型,2,3,1)”)
->orderByRaw(“兰德()”);
这将首先按ad_type字段排序,然后按随机数(每行不同)排序作为第二排序。首先,您需要花费大量时间和精力。如果我可以问一个关于这个的问题:这是否会洗牌广告类型1、2和3本身,比如说广告类型1由[a、b、c]组成,我希望每次运行查询时都洗牌这些内容。我想我在最初的问题中可能还不够清楚。假设广告类型1有
[a,b,c]
,广告类型2有[d,e]
,那么当你运行这个查询时,你首先会以随机顺序得到[d,e],然后以随机顺序得到[a,b,c]。每次运行时,内部顺序都会发生变化,但广告类型的顺序仍然是相同的,我会尽快测试出来。如果这是我的解决方案,我会将这篇文章标记为解决方案,并为未来的读者编辑我的初始问题。谢谢你的时间:)非常感谢你的时间和努力。如果我可以问一个关于这个的问题:这是否会洗牌广告类型1、2和3本身,比如说广告类型1由[a、b、c]组成,我希望每次运行查询时都洗牌这些内容。我想我在最初的问题中可能还不够清楚。假设广告类型1有[a,b,c]
,广告类型2有[d,e]
,那么当你运行这个查询时,你首先会以随机顺序得到[d,e],然后以随机顺序得到[a,b,c]。每次运行时,内部顺序都会发生变化,但广告类型的顺序仍然是相同的,我会尽快测试出来。如果这是我的解决方案,我会将这篇文章标记为解决方案,并为未来的读者编辑我的初始问题。谢谢你抽出时间:)非常感谢