为所有从捆绑路由导入的前缀添加前缀时,如何在Symfony捆绑模板中生成URL?

时间:2019-05-21 01:32:40

标签: symfony routing prefix bundles

我有一个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}) }}
这样路径可以自动检测并使用外部应用程序的前缀?

2 个答案:

答案 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。您应该看到所有路线。