Request * - doublers - existing doublers, grouped by event. Keyed by event_id and student_id * * @return Application|Factory|View|\Illuminate\Foundation\Application|\Illuminate\View\View */ public function index() { $events = Event::all(); $existingRequests = auth()->user()->school->doublerRequests ->groupBy('event_id') ->map(function ($requestsForEvent) { return $requestsForEvent->keyBy('student_id'); }); $doublers = auth()->user()->school->doublers() ->with('student') ->with('event') ->get() ->groupBy('event_id'); return view('doubler_request.index', compact('events', 'doublers', 'existingRequests')); } public function makeRequest(DoublerRequestsStoreRequest $request) { foreach ($request->getDoublerRequests() as $thisRequest) { DoublerRequest::upsert([ 'event_id' => $thisRequest['event_id'], 'student_id' => $thisRequest['student_id'], 'request' => $thisRequest['request'], ], uniqueBy: ['event_id', 'student_id'], update: ['request'] ); } return to_route('doubler_request.index')->with('success', 'Recorded doubler requests'); } }