symfony 2等效于symfony 1中的url_for()函数

Bha*_*nan 6 javascript ajax jquery symfony

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

这怎么可能在Symfony2中?,即如果我必须在twig中访问多个动作而不指定routing.this在使用ajax时很有用.

提前致谢

Ste*_*nte 3

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

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

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

default:
  url:   /:module/:action/*
Run Code Online (Sandbox Code Playgroud)

如果没有这些通用路由,您就无法简单地访问 /myModule/myAction,而不实际为其定义路由。并且不要忘记 Symfony2 现在使用捆绑包,这会使事情变得更加复杂。

因此,对于您想要访问的任何操作,您都需要为它们编写路由。

为了实际生成 URL...
- 从控制器:$this->generateUrl($routeName);
- 从 PHP 模板:$view['router']->generate($routeName);
- 从 Twig 模板:{{ path('_routeName') }}{{ url('_routeName') }}绝对 URL