是否可以根据登录用户的ID修改路由?
例如,假设我有路由“/ users / 1 / comments”来获取用户编号1的所有注释,以及用户设置的“用户/ 1 /设置”。
如果登录的用户{id}为1,那么“用户/当前/评论”和“用户/当前/设置”是否会转到相同的端点?
我想过使用一个监听器和重定向,但这听起来很可怕。
答案 0 :(得分:0)
您可以将此基于登录用户,而无需在网址中指定其ID,因此您可以
/users/comments
重定向到控制器。在该控制器中,您可以获得用户ID
$this->getUser()->getId()
对于2条路线,您只需将它们链接到同一动作即可。
答案 1 :(得分:0)
实际上,我让它在控制器中执行与编号{id}值相同的操作。 即。 users / {id} / comments和users / current / comments都转到:
commentsAction($id)
{
if ($id=='current') {
$securityContext = $this->get('security.context');
$currentuser = $securityContext->getToken()->getUser();
$id=$currentuser->getId();
}
// etc...
}