Может ли Symfony просто обновить страницу? - PullRequest
4 голосов
/ 14 июня 2010

У меня есть приложение, которое получает запрос от другого приложения. Он обнаруживает значение в строке запроса, сравнивает это значение с кэшированным значением и, если они не совпадают, ему необходимо очистить свой кэш и перезагрузить страницу (создать новый кэш). К сожалению, я не могу найти способ заставить Symfony перенаправить на текущую страницу в том же формате (протокол, путь URI, строка запроса и т. Д.). Что мне не хватает? Все это происходит в фильтре на isFirstCall().

Спасибо.

Ответы [ 2 ]

4 голосов
/ 15 июня 2010

Мы сделали это в фильтре.

Это немного глупо, но вот пример выполнения перенаправления в фильтре ... вам придется самостоятельно проверять кэш...

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 голос
/ 10 апреля 2013

Если вы хотите перенаправить, вы можете сделать так:

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