我正在使用
/**
* @Route("page/#page")
*/
public function redirectAction()
{
return $this->redirectToRoute('page');
}
但是我需要能够放置“#”锚点,但我找不到这样做的方法。有什么想法吗?
答案 0 :(得分:1)
您可以使用redirect
代替redirectToRoute
public function yourAction()
{
return $this->redirect(
$this->generateUrl('url_route_name') . '#page',
['param1' => $param1]
);
}
答案 1 :(得分:1)
在控制器中,您无法获得哈希值。 this question可能重复。
相反,您应该将控制器更改为:
/**
* @Route("page/{page}")
*/
public function redirectAction($page)
{
return $this->redirectToRoute($page);
}
您也需要调整请求。
答案 2 :(得分: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锚点。