我正在开发一个新的 symfony 项目,并实现了自定义投票器。在控制器中,我可以通过
$this->isGranted('view',$team)
呼叫选民,但为此,我需要一个团队对象。当我想展示一支球队时,这是没有问题的。
但现在我有一个只有顶部菜单的基本模板。我只想在 $this->isGranted('view',$team)
返回 true 时显示“团队”按钮,但在这个模板中我从不显示任何团队,所以我没有可以通过此函数传递的团队对象。第一个树枝模板甚至是项目的概述。
我该怎么做?我应该将空白团队对象传递给基本模板吗?有人可以帮助我吗?
您不应该依赖与特定对象相关的选民。我想团队可以通过登录用户(或类似的东西)来显示。因此,您应该检查用户是否记录了您在 Symfony 中可以执行的操作
$this->isGranted('IS_AUTHENTICATED_FULLY')
或基于其他状态(新角色),例如 TEAM_VIEWER
但请记住,您必须为这些用户添加此角色。