Видео актуально для Symfony 7

В предыдущем видео у нас была ошибка, что если у нас есть какой-то аргумент, который передается в роуте, например id.

   #[Route('/page/{id}', name: 'app_main')]
    public function index(): Response
    {
        return $this->render('main/index.html.twig', []);
    }

Если пользователь попытается обратиться к этому роуту не передав аргумент, мы получим ошибку 404, что страница не найдена.

Как же можно дать пользователю возможность не указывать значение какого-то конкретного атрибута?

Для этого мы должны указать значение по умолчанию для этого аргумента. Например, пустое значение.

   #[Route('/page/{id}', name: 'app_main')]
    public function index($id=""): Response
    {
        return $this->render('main/index.html.twig', []);
    }

В этом случае в качестве значения аргумента будет подставлено значение по умолчанию, если пользователь ничего не передал в качестве значения аргумента для роута.

Таким образом, можно сделать любой аргумент в роуте не обязательным.

И важно правило. Если у вас есть несколько аргументов, необязательные аргументы должны обязательно находиться в самом конце списка всех аргументов.