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