Symfony 通过注释定义的管线中的可选参数

Symfony 通过注释定义的管线中的可选参数,symfony,Symfony,是否有一种更优雅的方法来定义带注释管线中的可选参数,然后再定义两个注释 我是这样做的: /** * * @Route("/view/{lang}/{file}", name="legacy_translation_view_file") * @Route("/view/{lang}", name="legacy_translation_view") * @Template() */ public function viewAction($lang,$file=null) { ... }

是否有一种更优雅的方法来定义带注释管线中的可选参数,然后再定义两个注释

我是这样做的:

/**
*
* @Route("/view/{lang}/{file}", name="legacy_translation_view_file")
* @Route("/view/{lang}", name="legacy_translation_view")
* @Template()
*/
public function viewAction($lang,$file=null)
{
   ...
}
我已经看到annotation类有一个名为“defaults”的字段,但对语法不太确定

thx

Symfony有一页关于:

也许你可以试试

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

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

通常情况下,只需知道在何处查找信息即可。我以前从未研究过bundle引用。thxI也会问同样的问题。。但是,如果有多个空字符串或空字符串默认值,则会创建像/1/en///1234/23这样的路径,Symfony会抱怨没有匹配的路由。