where(['user_id' => Auth::id()]) ->orderBy('ejaculated_date', 'desc') ->limit(9) ->get(); // 現在のオナ禁セッションの経過時間 if (count($ejaculations) > 0) { $currentSession = Carbon::parse($ejaculations[0]['ejaculated_date']) ->diff(Carbon::now()) ->format('%d日 %h時間 %i分'); } else { $currentSession = null; } // 概況欄のデータ取得 $summary = DB::select(<<<'SQL' SELECT to_char(avg(span), 'FMDDD日 FMHH24時間 FMMI分') AS average, to_char(max(span), 'FMDDD日 FMHH24時間 FMMI分') AS longest, to_char(min(span), 'FMDDD日 FMHH24時間 FMMI分') AS shortest, to_char(sum(span), 'FMDDD日 FMHH24時間 FMMI分') AS total_times, count(*) AS total_checkins FROM ( SELECT ejaculated_date - lead(ejaculated_date, 1, NULL) OVER (ORDER BY ejaculated_date DESC) AS span FROM ejaculations WHERE user_id = :user_id ORDER BY ejaculated_date DESC ) AS temp SQL , ['user_id' => Auth::id()]); return view('home')->with(compact('ejaculations', 'currentSession', 'summary')); } else { return view('guest'); } } }