Laravelで日付範囲でレコードをフィルタリングする方法


  1. クエリビルダを使用する方法:

    $start = '2022-01-01';
    $end = '2022-12-31';
    $records = DB::table('your_table')
            ->whereBetween('date_column', [$start, $end])
            ->get();

    上記の例では、your_tableというテーブルからdate_columnというカラムを日付範囲でフィルタリングしています。whereBetweenメソッドを使用して、指定した範囲内のレコードを抽出しています。

  2. Eloquentモデルを使用する方法:

    $start = '2022-01-01';
    $end = '2022-12-31';
    $records = YourModel::whereBetween('date_column', [$start, $end])->get();

    上記の例では、YourModelというEloquentモデルを使用しています。whereBetweenメソッドを使用して、指定した範囲内のレコードを抽出しています。

  3. クエリスコープを使用する方法:

    // YourModel.php
    public function scopeDateRange($query, $start, $end)
    {
    return $query->whereBetween('date_column', [$start, $end]);
    }

    上記の例では、YourModelモデルにDateRangeというスコープを定義しています。これにより、簡単に日付範囲でのフィルタリングを行うことができます。 使用方法:

    $start = '2022-01-01';
    $end = '2022-12-31';
    $records = YourModel::dateRange($start, $end)->get();

これらの方法を使用することで、Laravelで日付範囲でレコードをフィルタリングすることができます。適切なモデルやテーブル、カラム名を使用してコードを調整し、必要な日付範囲を指定してください。