/** * Display the highscore for a specific world. * * @param string $slug null * @param string $sort null * @return \Illuminate\View\View */ public function show($slug = null, $sort = null) { $world = world_by_slug($slug); $page = (int) app('request')->get('page', 1); list($sort, $columns) = $this->getSortable($world ? $sort : $slug); $players = $this->getPlayers($world, $columns); if ($page > 1 and $page > $players->lastPage()) { return redirect(url('/highscore', $world ? [$world->slug(), $sort] : $sort)); } return view('theme::highscore.show', compact('world', 'players', 'sort')); }
/** * Register route models. * * @param \Illuminate\Routing\Router $router * @return void */ protected function registerModels(Router $router) { $router->model('account', Account::class); $router->model('player', Player::class, function ($value) { $value = str_replace('-', ' ', urldecode($value)); if (preg_match('/^[0-9]+$/', $value)) { throw new NotFoundHttpException(); } if ($model = app('player')->whereName($value)->first()) { return $model; } throw new NotFoundPlayerException(); }); $router->bind('world', function ($value) { return world_by_slug($value); }); }