Link 从 Twig 到 Symfony 4 中的一条包罗万象的路线

Link to a catch-all route in Symfony 4 from Twig

在我的 config/routes.yaml 中,我设置了这样的路由:

frontend:
  path: /{path}
  controller: App\Controller\FrontendController::index
  requirements:
    path: .*

现在这是我项目中需要的一种包罗万象或后备路线。

是否可以定义某种反向 URL?例如。当我想从 Twig 模板 link 到命名路由时:

{{ path('frontend') }}

我目前运行遇到错误

An exception has been thrown during the rendering of a template ("Some mandatory parameters are missing ("path") to generate a URL for route "frontend".").

很明显。我可以在 YAML 上下文中定义像“/”这样的默认目标路径吗? (而不是每次都将其硬编码到模板中)。

您可以在 YAML 中为路径添加默认值:

frontend:
    path: /{path}
    controller: App\Controller\FrontendController::index
    defaults: { path : ''}
    requirements:
      path: .*

或者,如果您的路由是使用 注释 配置的:

* @Route("/{path}", defaults={"path"=""})