我在练习symfony2。我遇到了一个问题:
我刚做了一个简单的twig页面,它将数据发布到控制器的一个动作,并且有一个函数(它可以工作):
$.ajax({
type: 'POST',
url: "{{ path('my_test_account_register') }}",
data: account,
success: function(msg){
alert("Succeed!");
},
error: function(XmlHttpRequest,textStatus, errorThrown){
alert ("Failed! ");
}
}
我不想为我的每一个动作添加注释,不管怎样。我想将url: "{{ path('my_test_account_register') }}"
替换为url: "{{ path('MyTestBudnle:Account:register') }}"
,但我失败了。
我的问题是:如何在控制器中指定动作的URL?也许这是一个愚蠢的问题,这是我第一次使用stackoverflow。所以,很高兴见到你们!
答案 0 :(得分:1)
答案 1 :(得分:0)
您(正确)使用的树枝函数path()
,为给定的路径名称和一些可选参数创建网址。
控制器可以为同一操作设置不同的路由(从而使用不同的URL)。因此,如果要查找特定操作的网址,则无法使用Bundle:Controller:Action
表示法。相反,您必须使用路线名称。
path()
和render()
之间的区别在于,render()
包含子请求对模板中特定操作的响应。因为这一切都在内部发生,所以不需要为此生成URL。您甚至可以使用render()
来执行没有路径的操作。