LoginSignup
7
13

More than 3 years have passed since last update.

Laravelでcreated_atの日付を範囲指定してデータを取得する(自分用)

Last updated at Posted at 2019-06-06

メモ程度に書く

bladeファイルに検索フォームを設置

選択された20xx/xx/xx ~ 20xx/xx/xxを取得する

date.blade.php
<form action="hashtag" method="GET">
    <input type="date" name="from" placeholder="from_date">
        <span class="mx-3 text-grey">~</span>
    <input type="date" name="until" placeholder="until_date">
    <button type="submit">検索</button>
</form>

Controllerで条件分岐してクラスを呼び出す

とりあえず$requestを取得して$request['from']$request['until']があれば関数を呼び出す。っていう簡単な作りです。

DatesController.php
<?php

namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Date;


class DatesController extends Controller
{
    public function index(Request $request)
    {
        //日付が選択されたら
        if (!empty($request['from']) && !empty($request['until'])) {
            //ハッシュタグの選択された20xx/xx/xx ~ 20xx/xx/xxのレポート情報を取得
            $date = Date::getDate($request['from'], $request['until']);
        } else {
            //リクエストデータがなければそのままで表示
            $date = Date::get();
        }

        //取得したデータをviewに渡す
        return view('date', [
            "date" => $date
        ]);
    }
}

Modelにクラスを書く

ささっと書いただけなので色々と抜けてるけど許して

Date.php
    //ハッシュタグレポートを取得
    public static function getDate($from, $until)
    {
        //created_atが20xx/xx/xx ~ 20xx/xx/xxのデータを取得
        $date = Date::whereBetween("created_at", [$from, $until])->get();

        return $date;
    }

こんな感じで取得できるはず

7
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
13