gpt4 book ai didi

javascript - symfony 2 等同于 symfony 1 中的 url_for() 函数

转载 作者:数据小太阳 更新时间:2023-10-29 05:27:14 26 4
gpt4 key购买 nike

在 Symfony 1 中,我们可以访问模板页面中的操作,例如 url_for('modulename/actionname') 而无需在 routing.yml 中写入任何内容。

这在 Symfony2 中怎么可能?也就是说,如果我必须在一个 Twig 中访问多个操作而无需在路由中指定。这在使用 ajax 时很有用。

提前致谢

最佳答案

如果我正确理解您的问题,您是在询问如何通过传递模块名称和操作名称而不是路由名称来生成 url。是对的吗?

我认为这在 Symfony2 中是不可能的。如果你看一下 Symfony\Component\Routing\Generator\UrlGenerator 中的 generate 方法,你会发现它需要一个路由名称作为第一个参数。此外,Symfony2 本身并不支持 symfony 1 支持的通用路由(如下所示以供引用)。

default_index:
url: /:module
param: { action: index }

default:
url: /:module/:action/*

如果没有这些通用路由,您将无法在不为其实际定义路由的情况下简单地访问/myModule/myAction。并且不要忘记 Symfony2 现在使用 bundle ,这会使事情进一步复杂化。

因此,无论您想访问什么操作,都需要为它们编写路由。

为了实际生成 URL...
- 来自 Controller :$this->generateUrl($routeName);
- 来自 PHP 模板:$view['router']->generate($routeName);
- 来自 Twig 模板:{{ path('_routeName') }}{{ url('_routeName') }} 用于绝对 URL

关于javascript - symfony 2 等同于 symfony 1 中的 url_for() 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8005972/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com