Symfony检查对控制器的请求是否来自片段

时间:2014-10-06 15:28:10

标签: symfony

在Symfony中,有一种方法可以检查请求是否来自片段包括:

 {% render url('call_to_route') %}

我不必复制我的路线以适应片段包含。

谢谢!

2 个答案:

答案 0 :(得分:0)

我有同样的问题。 我找到了解决方案,但我不确定: 看起来片段中的请求在URI中有一个“_fragment”字符串,所以这段代码似乎有用,但请注意我不确定以及任何其他带字符串“_fragment”的请求它将与第一种情况相符。

class myController extends Controller {

    public function indexAction(Request $request) {

    if (strpos($request->server->get('REQUEST_URI'), "_fragment")) {
        return new Response('Request from a fragment');
    }
    elseif ($request->isXmlHttpRequest()){
        return new Response('Request from ajax');
    }
    else {
        return new Response('normal request');
    }
}

我很感兴趣,如果有人知道是否有更好的解决方案 - $request->isXmlHttpRequest(),也许片段有类似的东西?我还在寻找,对不起我的英语。

答案 1 :(得分:0)

这实际上是一件坏事,因为片段可以依赖缓存,或者像Varnish或Nginx等其他软件。

因此,在您的网址中包含参数或使用不同的网址是一种更好的方法。