/** * Get collection of users from cache by specified role or default to * alternate repository lookup. * * @param string|null $role * @return \Illuminate\Support\Collection */ public function getAllByRole($role = null) { $key = array_search($role, User::getRoles()); $ids = $this->retrieve($key . ':ids'); if ($ids) { $users = $this->retrieveMany($ids); $users = $this->resolveMissingUsers($users); $users = collect(array_values($users)); return $users; } $users = $this->repository->getAllByRole($role); if ($users->count()) { $ids = $users->pluck('id')->all(); $collection = $users->keyBy('id')->all(); $this->store($key . ':ids', $ids); $this->storeMany($collection); } return $users; }
/** * Returns an index of all contestants. * * @return \Illuminate\Http\Response */ public function contestantsIndex() { $contestants = $this->repository->getAllByRole(); return view('users.contestants_index', compact('contestants')); }