Laravel 5 以laravel雄辩的方式转换原始查询

Laravel 5 以laravel雄辩的方式转换原始查询,laravel-5,laravel-eloquent,Laravel 5,Laravel Eloquent,如何以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() “现在()在开始时间和结束时间之间”。我无法转换 这一部分很有说服力 如果您

如何以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()
“现在()在开始时间和结束时间之间”。我无法转换 这一部分很有说服力


如果您有任何建议,我们将不胜感激。

您可以通过定义您的
开始时间
低于当前日期时间,并且
结束时间
大于当前日期时间来实现相同的语义:

Post::whereStatus(1)
         ->where("start_time", "<", Carbon::now())
         ->where("end_time", ">", Carbon::now())
         ->orderBy('id','desc')
         ->first();
Post::whereStatus(1)
->其中(“开始时间”,“碳::现在())
->orderBy('id','desc')
->第一个();

您可以通过定义
开始时间
低于当前日期时间,而
结束时间
大于当前日期时间来实现相同的语义:

Post::whereStatus(1)
         ->where("start_time", "<", Carbon::now())
         ->where("end_time", ">", Carbon::now())
         ->orderBy('id','desc')
         ->first();
Post::whereStatus(1)
->其中(“开始时间”,“碳::现在())
->orderBy('id','desc')
->第一个();

您可以执行以下操作

Post::where('status', 1)
    ->where('start_time', '>', Carbon::now())
    ->where('end_time', '<', Carbon::now())
    ->orderBy('id', 'DESC')
    ->take(1)
    ->get();
Post::where('status',1)
->其中('start_time','>',Carbon::now())

->其中('end_time','您可以执行以下操作

Post::where('status', 1)
    ->where('start_time', '>', Carbon::now())
    ->where('end_time', '<', Carbon::now())
    ->orderBy('id', 'DESC')
    ->take(1)
    ->get();
Post::where('status',1)
->其中('start_time','>',Carbon::now())

->其中('end_time',而不是get你可以先写,因为他想限制1,而不是get你可以先写,因为他想限制1