我试图创建一个报告页面,显示从特定日期到特定日期的报告。这是我当前的代码:

$now = date('Y-m-d');
$reservations = Reservation::where('reservation_from', $now)->get();

这在普通SQL中所做的是从表中选择*,其中reservation_from = $now。

我在这里有这个问题,但我不知道如何将其转换为雄辩的问题。

SELECT * FROM table WHERE reservation_from BETWEEN '$from' AND '$to

如何将上面的代码转换为雄辩的查询?


当前回答

试试这个:

因为你是基于单列值进行抓取,你可以同样简化你的查询:

$reservations = Reservation::whereBetween('reservation_from', array($from, $to))->get();

根据条件检索:laravel文档

希望这对你有所帮助。

其他回答

试试这个:

因为你是基于单列值进行抓取,你可以同样简化你的查询:

$reservations = Reservation::whereBetween('reservation_from', array($from, $to))->get();

根据条件检索:laravel文档

希望这对你有所帮助。

我的答案是有效的,谢谢你Artisan Bay,我读了你的评论,使用wheredate()

它工作

public function filterwallet($id,$start_date,$end_date){

$fetch = DB::table('tbl_wallet_transactions')
->whereDate('date_transaction', '>=', $start_date)                                 
->whereDate('date_transaction', '<=', $end_date)                                 
->get();

你可以使用DB::raw(")使列作为日期MySQL使用whereBetween函数如下:

    Reservation::whereBetween(DB::raw('DATE(`reservation_from`)'),
    [$request->from,$request->to])->get();

@masoud,在Laravel,你必须从表单请求字段值。所以,

    Reservation::whereBetween('reservation_from',[$request->from,$request->to])->get();

而在livewire中,略有变化

    Reservation::whereBetween('reservation_from',[$this->from,$this->to])->get();

我知道这可能是一个老问题,但我刚刚发现自己在一个Laravel 5.7应用程序中实现了这个功能。下面是我的工作。

 $articles = Articles::where("created_at",">", Carbon::now()->subMonths(3))->get();

您还需要使用Carbon

use Carbon\Carbon;