我尝试实施ACL以将对FOSCommentBundle的评论限制为用户角色。 我一步一步地看了Bundles Doc但是给我看了一个错误:
" acl"的定义没有上课。
这就是我的app / config / config.yml
fos_comment:
db_driver: orm
class:
model:
comment: BackEndBundle\Entity\Comment
thread: BackEndBundle\Entity\Thread
vote: BackEndBundle\Entity\Vote
acl: true
service:
acl:
thread: fos_comment.acl.thread.roles
comment: fos_comment.acl.comment.roles
vote: fos_comment.acl.vote.roles
manager:
thread: fos_comment.manager.thread.acl
comment: fos_comment.manager.comment.acl
vote: fos_comment.manager.vote.acl
acl_roles:
comment:
create: IS_AUTHENTICATED_ANONYMOUSLY
view: IS_AUTHENTICATED_ANONYMOUSLY
edit: ROLE_ADMIN
delete: ROLE_ADMIN
thread:
create: IS_AUTHENTICATED_ANONYMOUSLY
view: IS_AUTHENTICATED_ANONYMOUSLY
edit: ROLE_ADMIN
delete: ROLE_ADMIN
vote:
create: IS_AUTHENTICATED_ANONYMOUSLY
view: IS_AUTHENTICATED_ANONYMOUSLY
edit: ROLE_ADMIN
delete: ROLE_ADMIN
assetic:
bundles: [ "FOSCommentBundle" ]
我认为symfony3没有安装ACL,所以我尝试使用命令但是给了我同样的错误"" acl"的定义没有上课"。
这就是我的app / config / services.yml
parameters:
services:
acl:
connection: default
答案 0 :(得分:1)
您不必将ACL配置添加到app / config / services.yml。在这种情况下,捆绑软件FOSCommentBundle有自己的服务配置文件。
只需通过Composer安装捆绑包,然后将捆绑包添加到AppKernel.php
中$bundles = [
...
new FOS\CommentBundle\FOSCommentBundle(),
...
如果您已完成上述所有操作,只需从app / config / services.yml中删除acl: connection: default
即可。您可以查看bin\console debug:container fos_comment
是否提供FOSCommentBundle服务。