1

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?

3 Answers 3

1

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.

Sign up to request clarification or add additional context in comments.

1 Comment

thank you for your answer, but i need to know when the user enters to this route, for example: example.com/#helloWorld, so i can redirect to another page,not just adding the "#" to the end of the route, i'm using sf 2.8 btw.
1

You can use redirect instead of redirectToRoute

public function yourAction()
{
    return $this->redirect(
         $this->generateUrl('url_route_name') . '#page',
         ['param1' => $param1]
     );
}

1 Comment

thank you for your answer, but i need to know when the user enters to this route, for example: example.com/#helloWorld, so i can redirect to another page,not just adding the "#" to the end of the route
1

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.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.