如何以Laravel雄辩的方式转换此查询?
SELECT * FROM posts WHERE status=1 and now() BETWEEN start_time and end_time ORDER BY id DESC LIMIT 1
// What so far i have tried
Post::whereStatus(1)->orderBy('id','desc')->get()
“和now()BETWEEN start_time和end_time”。我无法转换 这部分是雄辩的。
任何建议都将受到高度赞赏。
答案 0 :(得分:1)
您可以通过定义start_time
低于当前日期时间并且end_time
大于它来实现相同的语义:
Post::whereStatus(1)
->where("start_time", "<", Carbon::now())
->where("end_time", ">", Carbon::now())
->orderBy('id','desc')
->first();
答案 1 :(得分:1)
您可以执行以下操作
Post::where('status', 1)
->where('start_time', '>', Carbon::now())
->where('end_time', '<', Carbon::now())
->orderBy('id', 'DESC')
->take(1)
->get();