我有一个Symfony捆绑包,它定义了一个控制器并呈现了一些模板。
路由被定义为捆绑软件routes.yaml
中的注释。
* @Route("/edit/{id}", name="edit")
* @Route("/new", name="new", defaults={"id" : null})
然后,当我将捆绑软件安装到应用程序中时,我将从带有前缀的捆绑软件routing.yaml
导入所有路由。像这样:
admin_blog_controller:
resource: '@BlogBundle/Resources/config/admin_routes.yaml'
prefix: /admin/blog2
name_prefix: admin.blog2.
现在我有捆绑模板
并且我需要生成前缀未知的网址。
(因为前缀是在bundle之外定义的。)
我需要生成这样的路线:
{{ path('new') }}
或{{ path('edit, {"id": blogId}) }}
但是找不到路由。
是否有一种方法可以在包模板内相对于包生成URL?
像
{{ path('@Bundle/new') }}
或{{ path('@Bundle/edit, {"id": blogId}) }}
这样路径可以自动检测并使用外部应用程序的前缀?
答案 0 :(得分:0)
为您的路线命名唯一名称,然后您就可以在任何地方使用它了。像这样:
{{ path('acmeBundle_controllerName_actionName', {'id': Variable.id}) }}
您可以使用
php bin/console debug:router --env=dev
(symfony +3)或php app/console debug:router --env=prod
(symfony 2)以在所需的环境中查看您的路线名称。
答案 1 :(得分:-1)
使用php bin/console debug:router
。您应该看到所有路线。