Javascript symfony 1中url_for()函数的symfony 2等效项
在Symfony 1中,我们可以访问模板页面中的操作,例如('modulename/actionname')的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\
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>
希望有帮助。
干杯。谢谢你的回答。