Reputation: 21
I'm using
/**
* @Route("page/#page")
*/
public function redirectAction()
{
return $this->redirectToRoute('page');
}
But I need to be able to put "#" anchor, but I can't find a way of doing that. Any ideas?
Upvotes: 1
Views: 2657
Reputation: 1438
In a controller you can't get the hash. Possible duplicate of this question.
Instead you should change your controller to:
/**
* @Route("page/{page}")
*/
public function redirectAction($page)
{
return $this->redirectToRoute($page);
}
You'd need to adjust the request too.
Upvotes: 1
Reputation: 8162
You can use redirect
instead of redirectToRoute
public function yourAction()
{
return $this->redirect(
$this->generateUrl('url_route_name') . '#page',
['param1' => $param1]
);
}
Upvotes: 1
Reputation: 7764
You would have to use the new Routing Improvements added in Symfony 3.2. I see you have a symfony2 tag, and it should be in the latest version of Symfony2 as well.
You can't add a anchor to routing annotation, but here's the changes you would need:
/**
* @Route("page")
*
*/
public function redirectAction()
{
return $this->redirectToRoute(
$this->get('router')->generate('page', [
'_fragment' => 'page'
])
);
}
This presumes there is a #page anchor in your page being rendered.
Upvotes: 1