supports()
返回false
,结果是Access Denied
,正常吗?根据文档,选民最终应该得到支持,所以我认为应该授予访问权限。
选民::支持($属性,$主题)
当调用 isGranted() (或 DenyAccessUnlessGranted())时,第一个 参数在此处作为 $attribute 传递(例如 ROLE_USER、edit),并且 第二个参数(如果有)作为 $subject 传递(例如 null、Post 目的)。您的工作是确定您的选民是否应该投票 属性/主题组合。如果返回 true,则 voteOnAttribute() 将被调用。否则,你的选民就完了:其他选民应该 处理这个。在此示例中,如果属性是,则返回 true 查看或编辑该对象是否是 Post 实例。
如果包括该投票者在内的所有投票者弃权或任何其他投票者失败,它将返回 Acess Denied。
如果所有其他选民弃权,并且您不想抛出访问被拒绝异常,您可以将配置中的
allow_if_all_abstain
属性设置为 true。
文档中对此进行了描述:https://symfony.com/doc/current/security/voters.html#chang-the-access-decision-strategy