【发布时间】:2014-02-24 15:28:10
【问题描述】:
我的controller 中有一个handleAjaxAction。在这个动作中,我想做不同的事情取决于route 或url。所以,我试图通过以下方式获取当前页面的路由:
$request->attributes->get('_route');
但是,它给了我ajax 路由demo_ajax_update,而不是当前页面的路由demo_homepage。
如何在Ajax action 中获取当前路线?
编辑:
我的Ajax 代码如下:
var route; <-------- Should be set as the route of the current page
$.ajax({
type: "POST",
url: Routing.generate('demo_ajax_update'),
data: JSON.stringify({id: patientId, startDate: startDate, endDate: endDate, route: route}),
dataType: "json",
success: function (data) {
// Doing something
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert('Error : ' + errorThrown);
}
});
在controller:
public function handleAjaxUpdateAction(Request $request)
{
$data = json_decode($request->getContent());
if($data->route == 'demo_homepage'){
// Do something
}
elseif($data->route == 'demo_anotherroute'){
// Do something
}
}
【问题讨论】:
-
你不能把路由作为参数吗?
-
所以,我必须使用 javascript 获取当前页面的路由,以便将正确的路由发送到
controller。我一直在寻找它,但仍然不知道如何实现这一点。