Symfony2 - 两个不同URL的相同路由名称

时间:2013-10-03 00:21:55

标签: symfony twig symfony-routing

在我的Synfony2 wep应用程序中,同一个用户可以拥有两个不同的角色。无论是员工还是老板,他都可以。所以,我希望切换按钮具有更改角色,以便用户对数据有不同的视图。例如,有一个Boss,用户可以看到项目中工作的进度,作为一个Employee,他会看到要在同一个项目中从团队的每个成员完成的工作。所以基本上,老板会对某些行动享有特权,而对其他行动则有雇员。

我应该如何在角色之间切换?我计划为每个角色/boss/todesemployee/todos分配两个不同的网址。在某些情况下,我会使用相同的树枝模板(例如待办事项列表)。当我需要通过始终指定相同的route_name /boss/todos/{id}来生成path('todo_show', {'id': id})等URL时,该怎么办?

我认为它与_locale参数非常相似。是否可以在Symfony 2.3中创建类似于_locale的自定义参数?

提前致谢!

2 个答案:

答案 0 :(得分:0)

你觉得IMO太复杂了。为两个用户创建一个路由,例如/ todo / {id},它将根据用户的角色将用户重定向到用户特定的路由/ boss / todo / {id}或/ employee / todo / {id}。

答案 1 :(得分:0)

在路由配置文件中设置默认参数是不够的?

todo_show:
    pattern:  /{_user}/todos/{id}
    defaults: { _controller: YourAppBundle:Default:getTodos, _user: boss }
    requirements:
        _user: boss|employee       
    methods:  [GET]

然后:

path('todo_show', {'id': id, '_user': 'employee'}); // for boss there is no need to specify _user