我的Symfony应用中有一个参数Event
和id
的实体slug
。
参数slug
可以为空,不是必需的,如果缺少,则使用id
链接到单个事件页面构建。但是,如果设置了slug
,则使用此参数构建url。
任务是为具有slug的事件创建301重定向。我正在尝试使用symfony方法redirect()
但我遇到了一个问题:当我第一次设置slug时,它工作正常并将我从网址event/3
替换为event/my-event-slug
。但是当我删除slug或更改它时,浏览器仍然会将我重定向到我提供的第一个slug。
我正在Chrome控制台中查看它,它向我显示我的重定向301是从缓存中加载的。
如何防止将重定向保存到缓存中?或者如何在控制器中以其他方式解决此问题?
答案 0 :(得分:1)
试试这个:
return $this->redirect($url, 301);
答案 1 :(得分:0)
试试这个
$object = new Event();
$router = $this->get('router');
$url = $object->getSlug() ? $router->generate('my_route', $object->getSlug()) : $router->generate('my_route', $object->getId());
$this->redirect($url,301);