web-dev-qa-db-ja.com

Symfonyのリダイレクト機能を使用する場合のURLのアンカー

使っています

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

しかし、最後に「#」アンカーを付けることができる必要がありますが、それを行う方法が見つかりません。何か案は?

コード

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

/ route/id/5を返しますが、/ route/id/5#anchor7を作成できるようにしたい

25
gX.
$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 を参照してください。

55
Dan Blows

ルーターの使用:

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

このメソッドはFabienPotencierによって使用されます: https://github.com/symfony/symfony/issues/3910#issuecomment-5110238

2

同様ですが

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

Symfony 1.4で正常に動作し、少し単純なソリューションのようです

2
Tofuwarrior