使用 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 中锚定的主要内容,如果未能解决你的问题,请参考以下文章

facebook 桌面应用程序的重定向 url

如何使用 Python 从 Selenium 的重定向链中获取中间 URL?

Django 身份验证 - 错误的重定向 url 到登录页面

我需要撤消重定向插件完成的重定向 URL

URL 重写 - 不带文件扩展名的重定向

获取 Ajax 调用的重定向 URL / 打开隐藏的 InAppBrowser Sencha 2.2.1