0

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

例如,假设我有路由“/users/1/comments”来获取用户编号 1 的所有评论,并使用“users/1/settings”获取他们的设置。

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

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

4

2 回答 2

0

您可以基于登录用户而不在 url 中指定其 ID,因此您将拥有

/users/comments 

重定向到控制器。在该控制器中,您只需获取用户 ID

$this->getUser()->getId()

对于 2 条路线,您可以将它们链接到相同的操作。

于 2013-08-31T14:50:49.607 回答
0

事实上,我让它在控制器中执行与编号 {id} 值相同的操作。IE。users/{id}/comments 和 users/current/comments 都去了:

commentsAction($id)
{
    if ($id=='current') {
        $securityContext = $this->get('security.context');
        $currentuser = $securityContext->getToken()->getUser();
        $id=$currentuser->getId();
     }

     // etc...
}
于 2013-09-04T13:07:37.830 回答