记录用户ID的基本Symfony2路由

时间:2013-08-31 14:35:53

标签: symfony routing

是否可以根据登录用户的ID修改路由?

例如,假设我有路由“/ users / 1 / comments”来获取用户编号1的所有注释,以及用户设置的“用户/ 1 /设置”。

如果登录的用户{id}为1,那么“用户/当前/评论”和“用户/当前/设置”是否会转到相同的端点?

我想过使用一个监听器和重定向,但这听起来很可怕。

2 个答案:

答案 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...
}