使用 Symfony 的重定向功能时在 URL 中锚定
Posted
技术标签:
【中文标题】使用 Symfony 的重定向功能时在 URL 中锚定【英文标题】:Anchor in URL when using Symfony's redirect function 【发布时间】:2011-08-07 08:17:32 【问题描述】:我正在使用
$this->redirect('route', array('id' => $id));
但我需要能够将“#”锚放在末尾,但我找不到这样做的方法。有什么想法吗?
代码
$this->redirect('route', array('id' => $id));
返回 /route/id/5 但我希望能够创建 /route/id/5#anchor7
【问题讨论】:
【参考方案1】:$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
【讨论】:
所以..你把我自己的答案写在上面了吗? 我没有看到你的答案@gX。 ***.com/posts/9054865/revisions 和 ***.com/posts/5694244/revisions @gX 这是一个非常古老的问题和答案,而我在 SO 上的经验较少。我可能正在处理未回答的问题,而您的问题出现了,因为您的答案是作为评论发布的不是答案。 The correct etiquette for me would have been to post as community wiki 所以我很抱歉没有这样做。从您的角度来看,将来确保您将答案作为答案发布,即使它是an answer to your own question。随意在这里发布另一个答案,我会给你一个赞成票。 感谢您的回复,但正如我在原始问题中所写:'*** 不允许我将其作为答案发布,因为我是“新用户”'【参考方案2】:使用路由器:
$router->generateUrl('awesome_route') . '#comment-2';
Fabien Potencier 使用此方法:https://github.com/symfony/symfony/issues/3910#issuecomment-5110238
【讨论】:
【参考方案3】:类似但
$this->redirect('@routename?id='.$id.'#anchor7');
在 Symfony 1.4 中运行良好,解决方案似乎稍微简单
【讨论】:
以上是关于使用 Symfony 的重定向功能时在 URL 中锚定的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 Python 从 Selenium 的重定向链中获取中间 URL?