2016-12-28 2 views

ответ

0

Вам нужно будет использовать новый Routing Improvements added in Symfony 3.2. Я вижу, что у вас есть тег symfony2, и он также должен быть в последней версии Symfony2.

Вы не можете добавить якорь маршрутизации аннотацию, но вот изменения, которые необходимо будет:

/** 
* @Route("page") 
* 
*/ 
public function redirectAction() 
{ 
    return $this->redirectToRoute(
     $this->get('router')->generate('page', [ 
     '_fragment' => 'page' 
     ]) 
    ); 
} 

Это предполагает, есть #page якорь на вашей странице быть оказаны.

+0

Благодарим вас за ответ, но мне нужно знать, когда пользователь входит на этот маршрут, например: example.com/#helloWorld, поэтому я могу перенаправить на другую страницу, а не просто добавить «#» в конец маршрута, я использую sf 2.8 btw. – Sisco

1

Вы можете использовать redirect вместо redirectToRoute

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

Благодарим вас за ответ, но мне нужно знать, когда пользователь входит на этот маршрут, например: http://example.com/#helloWorld, поэтому я могу перенаправить на другую страницу, а не просто добавить «#» в конец маршрута – Sisco

1

В контроллере вы не можете получить хэш. Возможный дубликат: this question.

Вместо этого вы должны изменить свой контроллер:

/** 
* @Route("page/{page}") 
*/ 
public function redirectAction($page) 
{ 
    return $this->redirectToRoute($page); 
} 

Вы должны были бы настроить запрос тоже.