Может ли Symfony просто перезагрузить страницу?

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

Благодарю.

2 ответа

Решение

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

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

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();   
  }
}

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

if (true===$redirect)
{
    return $this->getContext()->getController()->redirect($request->getUri());
}
Другие вопросы по тегам