我的所有页面都有导航菜单。当用户点击一个链接时,它会打开一个模式表单,用户可以在其中发送消息。当用户点击提交按钮时,我希望控制器返回当模态打开时他所在的页面。
答案 0 :(得分:3)
获取controller
中的当前路线。
$router = $this->get("router");
$route = $router->match($this->getRequest()->getPathInfo());
var_dump($route['_route']);
OR
$request = $this->container->get('request');
$routeName = $request->get('_route');
获取twig
app.request.get('_route')
答案 1 :(得分:0)
好的,所以帖子有点旧,但对于其他寻找类似内容的人,我建议使用javascript来拦截提交并通过ajax帖子发送序列化数据的不同方式处理消息表单。
然后,控制器可以返回简单的成功消息或带有任何错误消息的表单视图。
如果提交成功,用户可以尝试重新发送消息或只是关闭模式,或者使用window.timeout自动关闭它。用户永远不会离开原始页面,他们不必等待页面重新加载。
像jQuery这样的库将使这很容易实现,例如
$(document).on("click","button#messageSend",function(e){
tht = $(this);
frm = tht.closest("form");
container = frm.parent()
e.preventDefault();
$.ajax({
url: frm.attr("action"),
method: "POST",
data: frm.serialize(),
dataType: "html"
}).done(function(data){
container.html(data);
// Add any additional processing here
});
return false;
});
答案 2 :(得分:-1)
在树枝模板中生成路径:
{{ path(app.request.attributes.get('_route'),
app.request.attributes.get('_route_params')) }}
或获取当前请求uri:
{{ app.request.uri }}
您也可以考虑在叠加层中进行模态窗口,这样用户只需关闭模态即可返回当前页面。