正如您在以下链接中所看到的,supportClass&当我们调用isGranted()时,不会调用supportsAttribute方法:
是否在其他地方调用了这些方法?
为什么他们是界面的一部分?
答案 0 :(得分:0)
听起来这是正常行为,因为选民必须检查班级。
这是检查课程的解决方案:
function vote(TokenInterface $token, $object, array $attributes)
{
$user = $token->getUser();
//sometime the object is a class or a instance of Request
if($object instanceOf \Symfony\Component\HttpFoundation\Request ){
return VoterInterface::ACCESS_ABSTAIN;
}else{
$class = $object->getType();
if($class == 'Vendor\\MyBundle\\Entity\\MyEntity'){
return VoterInterface::ACCESS_GRANTED;
}
}
return VoterInterface::ACCESS_DENIED;
}