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('%a日 %h時間 %i分'); } else { $currentSession = null; } // 概況欄のデータ取得 $summary = DB::select(<<<'SQL' SELECT avg(span) AS average, max(span) AS longest, min(span) AS shortest, sum(span) AS total_times, count(*) AS total_checkins FROM ( SELECT extract(epoch from 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()]); $informations = Information::query() ->select('id', 'category', 'pinned', 'title', 'created_at') ->orderBy('pinned') ->orderByDesc('created_at') ->paginate(3); $categories = Information::CATEGORIES; return view('home')->with(compact('ejaculations', 'currentSession', 'summary', 'informations', 'categories')); } else { return view('guest'); } } }