Symfony 5-路由-分配错误的可选参数

问题描述

我使用Symfony5。我有一条包含2个参数的路由,其中​​第二个是可选的。当我在不传递可选参数的情况下调用此路由时,它包含除认情况下分配给它的空值之外的其他内容

这是我的路线:

/**
     * Creating and updating advert
     *
     * @Route("/advert/description/create/{owner}/{advert}",name="advert.description.create")
     * 
     * @param Owner $owner
     * @param Advert $advert
     * @param Request $request
     * @param EntityManagerInterface $manager
     * 
     * @return Response
     */
    public function descriptionForm(Owner $owner,Advert $advert = null,Request $request,EntityManagerInterface $manager): Response
    {
 
        dump($advert);

例如,当我使用网址“ https://127.0.0.1:8000/en/advert/description/create/1”时,转储会给我一个ID为2的对象。

解决方法

解决了添加这些注释的问题:

  • @ParamConverter(“ owner”,options = {“ id” =“ owner”})
  • @ParamConverter(“ advert”,options = {“ id” =“ advert”})