$menuAccessService->isSorin(), 'visibleCities' => $menuAccessService->visibleCities(), ]; // Nav bar に表示される ハード異常・タスク件数を取得 if (auth()->check()) { // ハード異常(que_class > 99)かつステータスが未対応(1)または進行中(2) $hardwareIssues = DB::table('operator_que as oq') ->leftJoin('user as u', 'oq.user_id', '=', 'u.user_id') ->leftJoin('park as p', 'oq.park_id', '=', 'p.park_id') ->select( 'oq.que_id', 'oq.que_class', 'oq.que_comment', 'oq.created_at', 'oq.updated_at', 'oq.que_status' ) ->where('oq.que_class', '>', 99) ->whereIn('oq.que_status', [1, 2]) ->orderBy('oq.created_at', 'DESC') ->limit(5) ->get(); // タスク(que_class < 99)かつステータスが未対応(1)または進行中(2) $taskIssues = DB::table('operator_que as oq') ->leftJoin('user as u', 'oq.user_id', '=', 'u.user_id') ->leftJoin('park as p', 'oq.park_id', '=', 'p.park_id') ->select( 'oq.que_id', 'oq.que_class', 'oq.que_comment', 'oq.created_at', 'oq.updated_at', 'oq.que_status' ) ->where('oq.que_class', '<', 99) ->whereIn('oq.que_status', [1, 2]) ->orderBy('oq.created_at', 'DESC') ->limit(5) ->get(); // ハード異常・タスク件数計算 $hardCount = DB::table('operator_que') ->where('que_class', '>', 99) ->whereIn('que_status', [1, 2]) ->count(); $taskCount = DB::table('operator_que') ->where('que_class', '<', 99) ->whereIn('que_status', [1, 2]) ->count(); // 最新のハード異常・タスク日時 $hardLatest = $hardwareIssues->first()?->created_at; $taskLatest = $taskIssues->first()?->created_at; // Nav bar 関連データをマージ $viewData = array_merge($viewData, [ 'hardCount' => $hardCount, 'hardLatest' => $hardLatest, 'latestHards' => $hardwareIssues, 'taskCount' => $taskCount, 'taskLatest' => $taskLatest, 'latestTasks' => $taskIssues, ]); } // すべてのビューでこれらのデータが利用可能 View::share($viewData); return $next($request); } }