Определение для «acl» не имеет класса

Я пытаюсь реализовать ACL, чтобы ограничить комментарии на FOSCommentBundle для роли пользователей.
Я шаг за шагом следил за Bundles Doc, но показывал мне ошибку:

Определение для acl не имеет класса.

Это мое приложение / 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 »не имеет класса».

Это мое приложение / config / services.yml

parameters:

services:
acl:
connection: default

0

Решение

Вам не нужно добавлять конфигурацию ACL в app / config / services.yml. Пакет, в данном случае FOSCommentBundle, имеет свой собственный файл конфигурации для сервисов.

Просто установите пакет через Composer и добавьте пакет в AppKernel.php

$bundles = [
...
new FOS\CommentBundle\FOSCommentBundle(),
...

Если вы сделали все выше, просто удалите acl: connection: default из app / config / services.yml и он должен работать. Вы можете проверить, есть ли услуги FOSCommentBundle, доступные по bin\console debug:container fos_comment,

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]