使用Symfony的重定向功能时锚定在URL中

时间:2011-04-17 15:03:03

标签: php symfony1

我正在使用

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

但我需要能够在结尾放置“#”锚,但我找不到这样做的方法。有什么想法吗?

代码

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

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

3 个答案:

答案 0 :(得分:53)

$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

答案 1 :(得分:2)

类似,但

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

在Symfony 1.4中运行良好,似乎有点简单的解决方案

答案 2 :(得分:2)

使用路由器:

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

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