首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sonata-admin:创建一个投票者

sonata-admin:创建一个投票者
EN

Stack Overflow用户
提问于 2022-03-25 08:27:19
回答 1查看 112关注 0票数 0

我使用的是Symfony 4.4和奏鸣曲-admin 3.107

我为我的一个管理页面(SampleAdmin)创建了一个投票者。

代码语言:javascript
复制
class SampleVoter extends Voter
{
   protected function supports($attribute, $subject): bool
    {
        return in_array($attribute, ['LIST', 'VIEW', 'CREATE', 'EDIT'])
            && $subject instanceof 'App\Entity\Sample';
    }
    
    protected function voteOnAttribute($attribute, $subject, TokenInterface $token): bool
    {
        if ($attribute === 'EDIT') {
            return false;
        }
        
        return true;
    }
}

我在我的服务中注册了它:

代码语言:javascript
复制
App\Voter\SampleVoter:
   tags: [ security.voter ]

但是在浏览器中加载奏鸣曲页面时不会加载它。我还应该做点什么吗?

EN

回答 1

Stack Overflow用户

发布于 2022-03-25 13:33:54

你怎么知道没装子弹?在supports()方法中引发异常:

代码语言:javascript
复制
class SampleVoter extends Voter
{
   protected function supports($attribute, $subject): bool
   {
       return in_array($attribute, ['LIST', 'VIEW', 'CREATE', 'EDIT']);
   }
    
   protected function voteOnAttribute($attribute, $subject, TokenInterface $token): bool
    {
        if ($attribute === 'EDIT') {
            return false;
        }
        
        return true;
    }
}

顺便说一句,不需要在services.yaml注册,因为服务自动布线。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71613992

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档