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"=""})
在我的 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"=""})