getRouteParser(); return $response ->withHeader('Location', $routeParser->urlFor('benchmark.list')) ->withStatus(302); } public function getList(Request $request, Response $response): Response { $benchmarks = Benchmark::orderByDesc('updated_at')->get(); $view = Twig::fromRequest($request); return $view->render($response, 'benchmark/list.twig', [ 'benchmarks' => $benchmarks, ]); } public function getView(Request $request, Response $response, array $args): Response { $benchmark = Benchmark::where('id', $args['benchmark_id'])->first(); $view = Twig::fromRequest($request); return $view->render($response, 'benchmark/view.twig', [ 'benchmark' => $benchmark, ]); } public function getAdd(Request $request, Response $response): Response { $view = Twig::fromRequest($request); return $view->render($response, 'benchmark/add.twig'); } public function postAdd(Request $request, Response $response): Response { $params = (array)$request->getParsedBody(); $benchmark = new Benchmark(); $benchmark->name = $params['benchmark_name']; $benchmark->description = $params['benchmark_description']; $benchmark->scoring = $params['benchmark_scoring']; $benchmark->save(); // redirect the user back to the home page $routeContext = RouteContext::fromRequest($request); $routeParser = $routeContext->getRouteParser(); return $response ->withHeader('Location', $routeParser->urlFor('benchmark.list')) ->withStatus(302); } public function getEdit(Request $request, Response $response, array $args): Response { $benchmark = Benchmark::where('id', $args['benchmark_id'])->first(); $view = Twig::fromRequest($request); return $view->render($response, 'benchmark/edit.twig', [ 'benchmark' => $benchmark, ]); } public function postEdit(Request $request, Response $response, array $args): Response { $benchmark = Benchmark::where('id', $args['benchmark_id'])->first(); $params = (array)$request->getParsedBody(); $benchmark->name = $params['benchmark_name']; $benchmark->description = $params['benchmark_description']; $benchmark->scoring = $params['benchmark_scoring']; $benchmark->save(); // redirect the user back to the home page $routeContext = RouteContext::fromRequest($request); $routeParser = $routeContext->getRouteParser(); return $response ->withHeader('Location', $routeParser->urlFor('benchmark.view', ['benchmark_id' => $benchmark->id])) ->withStatus(302); } }