通过注释定义的路径中的可选参数

roo*_*m13 27 symfony

是否有更优雅的方式在注释路由中定义可选参数然后定义2个注释?

我是这样做的:

/**
*
* @Route("/view/{lang}/{file}", name="legacy_translation_view_file")
* @Route("/view/{lang}", name="legacy_translation_view")
* @Template()
*/
public function viewAction($lang,$file=null)
{
   ...
}
Run Code Online (Sandbox Code Playgroud)

我已经看到注释类有一个名为"默认值"的字段,但对语法并不安静

谢谢

Tjo*_*rie 47

Symfony在@Route上有一个页面:

也许你可以试试.

/**
 * @Route("/{id}/{lang}/{file}", requirements={"id" = "\d+"}, defaults={"file" = null})
 */
public function showAction($id, $lang, $file)
{
}
Run Code Online (Sandbox Code Playgroud)

如果null不起作用,请尝试空字符串.

  • 我打算问同样的事情..但如果你有多个null或空字符串默认值,它会创建像/ 1/en /// 1234/23这样的路径,并且Symfony抱怨没有匹配的路由. (5认同)