【发布时间】:2019-10-29 04:52:35
【问题描述】:
我正在为一件非常困难的事情而苦苦挣扎,希望你能帮助我。 现在我有以下内容:
$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_types 本身进行洗牌,意思是: ad_type 1 可以有 30 个条目。它们都将按通常的顺序退回。每次运行此查询时,我都想对这 30 个进行洗牌。 我想过做 ->toArray();但话又说回来,没有分页(分页只适用于雄辩的查询,对吧?)
然后我想,嘿,让我们合并它。 但是一旦我这样做了,返回的集合不再是 Eloquent 集合,而是支持集合(对吗?我不能 100% 确定它是支持集合),因此分页不再起作用。
我阅读了许多关于如何解决此问题的帖子,并发现一种解决方案可能是“创建我自己的分页器实例” 但是,见鬼,我还没有那么好。我真的不知道,即使在研究了 laravel 文档之后,如何创建自己的分页器。
您可能需要的重要信息:
使用 Laravel 5.2
$ads 是动态的,这意味着根据具体情况,使用 Ajax 发送的请求,查询可能会在以后有所不同(可能会包含某些内容)。
非常感谢您抽出宝贵时间阅读本文,希望您能通过解决这个特定问题来帮助我和未来的读者。
大家好,祝大家周末愉快。
【问题讨论】:
标签: laravel collections eloquent paginator