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

Javascript symfony 1中url_for()函数的symfony 2等效项,javascript,ajax,jquery,symfony,Javascript,Ajax,Jquery,Symfony,在Symfony 1中,我们可以访问模板页面中的操作,例如('modulename/actionname')的url\u,而无需在routing.yml中写入任何内容 这在Symfony2中是如何实现的?也就是说,如果我必须访问一个细枝中的多个操作,而无需在路由中指定。这在使用ajax时非常有用 提前感谢如果我正确理解了您的问题,您会问如何通过传递模块名和操作名而不是路由名来生成url。是这样吗 我认为这在Symfony2中是不可能的。如果查看Symfony\Component\Routing\

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

这在Symfony2中是如何实现的?也就是说,如果我必须访问一个细枝中的多个操作,而无需在路由中指定。这在使用ajax时非常有用


提前感谢

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

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

如果没有这些通用路由,您就不能简单地访问/myModule/myAction而不为其实际定义路由。别忘了Symfony2现在使用bundle,这会使问题进一步复杂化

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

为了实际生成URL…
-从控制器:
$this->generateUrl($routeName)
-从PHP模板:
$view['router']->generate($routeName)
-从细枝模板:
{{path('u routeName')}
{url('u routeName')}}
对于绝对url

此外,以下是几个示例(带参数):

假设我们的路线是:

#routing.yml
acme_demo_page:
  path: /{page}.{_format}
  defaults:
    _controller:  AcmeDemoBundle:Page:index
我们将为此路由生成URL,如下所示:

来自任何控制器的操作:

$url = $view['router']->generate("acme_demo_page", array(
    "page" => "main",
    "_format" => "html",
));
$url = $this->generateUrl("acme_demo_page", array(
    "page" => "main",
    "_format" => "html",
));
<a href="{{ path('acme_demo_page', {page:'main', _format:'html'}) }}">Home</a>
<a href="{{ url('acme_demo_page', {page:'main', _format:'html'}) }}">Abs Home</a>
来自任何PHP模板:

$url = $view['router']->generate("acme_demo_page", array(
    "page" => "main",
    "_format" => "html",
));
$url = $this->generateUrl("acme_demo_page", array(
    "page" => "main",
    "_format" => "html",
));
<a href="{{ path('acme_demo_page', {page:'main', _format:'html'}) }}">Home</a>
<a href="{{ url('acme_demo_page', {page:'main', _format:'html'}) }}">Abs Home</a>
来自任何细枝模板:

$url = $view['router']->generate("acme_demo_page", array(
    "page" => "main",
    "_format" => "html",
));
$url = $this->generateUrl("acme_demo_page", array(
    "page" => "main",
    "_format" => "html",
));
<a href="{{ path('acme_demo_page', {page:'main', _format:'html'}) }}">Home</a>
<a href="{{ url('acme_demo_page', {page:'main', _format:'html'}) }}">Abs Home</a>


希望有帮助。

干杯。

谢谢你的回答。