Symfony可以简单地重新加载页面请求吗?

时间:2010-06-14 19:37:17

标签: php symfony1 symfony-1.4 php-5.2

我有一个应用程序接收来自其他应用程序的请求。它检测查询字符串上的值,根据缓存值检查该值,如果它们不匹配,则需要清除其缓存并重新加载页面(建立新缓存)。不幸的是,我找不到一种方法来告诉Symfony以完全相同的格式(协议,URI路径,查询字符串等)重定向到当前页面。我错过了什么?这一切都发生在isFirstCall()上的过滤器中。

感谢。

2 个答案:

答案 0 :(得分:4)

我们已在过滤器中完成此操作。

这有点hacky但是这里有一个在过滤器中进行重定向的例子......你必须自己测试缓存......

class invalidateCacheFilter extends sfFilter {   

  public function execute($filterChain)   {

    $redirect=true;
    if($redirect===true)
    {
      $request = $this->getContext()->getRequest();
      /**
       This is the hacky bit. I am pretty sure we can do this in the request object, 
       but we needed to get it done quickly and this is exactly what needed to happen.
      */
      header("location: ".$request->getUri());
      exit();
    }
    $filterChain->execute();   
  }
}

答案 1 :(得分:1)

如果您想重定向,可以这样做:

if (true===$redirect)
{
    return $this->getContext()->getController()->redirect($request->getUri());
}