twig path() 函数产生不同的结果

Exc*_*age 5 php annotations path symfony twig

我试图通过使用参数调用 path() 来添加动态链接到我的树枝模板。

{{ path('single_sale_submit_page', {'id': book['id']}) }}
Run Code Online (Sandbox Code Playgroud)

我在控制器中使用注释:

@Route("/book/{id}", name="single_sale_submit_page")
Run Code Online (Sandbox Code Playgroud)

这会产生以下网址:../book/?id=123456789。我不断收到错误消息,指出我的控制器需要强制参数,这当然是正确的,因为生成的 url 具有不同的语法(?)。

如何以从 path() 生成的 url 对应的方式设置 twig

../book/123456789
Run Code Online (Sandbox Code Playgroud)

并不是

../book/?id=123456789
Run Code Online (Sandbox Code Playgroud)

编辑:这个问题与我的问题有些相同。

Exc*_*age 6

在控制器的注释中添加默认值:

@Route("/boek/{id}", defaults={"id" = 1}, name="single_sale_submit_page")
Run Code Online (Sandbox Code Playgroud)

清除缓存:

app/console cache:clear
Run Code Online (Sandbox Code Playgroud)

重新加载后,由 path() 生成的路径将对应于:

../book/123456789
Run Code Online (Sandbox Code Playgroud)

并不是:

../book/?id=123456789
Run Code Online (Sandbox Code Playgroud)