query->has('value') ? (int) $request->query->get('value') : mt_rand(0, 100); /* Example features of the Request */ assert(false === $request->isXmlHttpRequest()); // Uses Accept-Language header. $preferred = $request->getPreferredLanguage(['en', 'fr']); // Empty on GET, valid on PATH, POST, PUT. $requestValue = $request->request->get('value'); $logger->notice("We sent $number on GET, $requestValue on POST/PUT/PATCH"); return $this->render("lucky/number.html.twig", [ "number" => $number, // No need for cookies->all(): Twig can use {% for %} on iterators. "cookies" => $request->cookies, ]); } /** * @\Symfony\Component\Routing\Annotation\Route( * name = "lucky-not-found", * path = "/lucky/not-found" * ) */ public function notFound() { $notFound = $this->createNotFoundException(); throw $this->createAccessDeniedException("Denied because it was not found", $notFound); } /** * @\Symfony\Component\Routing\Annotation\Route( * name = "lucky-denied", * path = "/lucky/denied" * ) */ public function denied() { $denied = $this->createAccessDeniedException(); throw $this->createNotFoundException("Not found because it was denied", $denied); } }