当使用Symfony's重定向函数时,锚定在URL中


Anchor in URL when using Symfony's redirect function

我用

$this->redirect('route', array('id' => $id));

,但我需要能够把"#"锚在结束,但我找不到这样做的方法。什么好主意吗?

的代码
$this->redirect('route', array('id' => $id));

返回/route/id/5,但我希望能够创建/route/id/5#anchor7

$this->redirect($this->generateUrl('route', array('id' => $id)) . '#anchor7');

更新:

在Symfony 3.2中可以这样做:

// generating a URL with a fragment (/settings#password)
$this->redirectToRoute('user_settings', ['_fragment' => 'password']);

见https://symfony.com/blog/new-in-symfony-3-2-routing-improvements

Using router:

$router->generateUrl('awesome_route') . '#comment-2';

此方法由Fabien Potencier使用:https://github.com/symfony/symfony/issues/3910#issuecomment-5110238

相似但

$this->redirect('@routename?id='.$id.'#anchor7');

在Symfony 1.4中工作得很好,看起来稍微简单一些