我使用laravel 5.7并尝试自定义类别和搜索结果。
我的帖子在字段“计划”中包含3种不同的计划:基本计划,专业计划和高级计划。
我想做的是在Pro中的所有帖子中显示所有具有溢价的帖子,而在Basic中则显示所有帖子,而在没有计划的情况下显示到最后一个帖子。
我可以使用orderByRaw来做到,我可以做到:
->orderByRaw("CASE WHEN plan = 'Basic' THEN 3 WHEN plan = 'Pro' THEN 2 WHEN plan = 'Premium' THEN 1 ELSE 4 END")
我的订单很好。
但是现在我想按计划以随机顺序显示帖子。 因此,首先在所有带有计划保费的帖子中按随机顺序排列,然后在所有带有计划Pro的帖子中按随机顺序排列等等。
如果我在orderBYRow中添加'RAND()'则无法正常工作,所以我问我是否有很好的方法。