Symfony2 SyliusRbacBundle Setup

Я изучаю возможность использования SyliusRbacBundle для моего приложения. Мне удается установить его вместе с FosUserBundle. Когда я добрался до части установки, я получил следующую ошибку при запуске команды "sylius:rbac:initialize", следуя инструкциям, найденным здесь: http://docs.sylius.org/en/latest/bundles/SyliusRbacBundle/setup.html

Initializing Sylius RBAC roles and permissions.
Adding permission "Update product". (app.product_update)
Adding permission "Create product". (app.product_create)
Adding permission "Manage product". (app.product_manage)

  [Doctrine\DBAL\DBALException]                                                
  An exception occurred while executing 'INSERT INTO sylius_role (code, name,  
   description, security_roles, tree_left, tree_right, tree_level, created_at  
  , updated_at, parent_id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)' with params  
   ["root", "Root", null, "a:0:{}", null, null, null, "2015-05-11 16:45:34",   
  "2015-05-11 16:45:34", null]:                                                
  SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'tree_left' ca  
  nnot be null

  [PDOException]                                                               
  SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'tree_left' ca  
  nnot be null                                                                 



sylius:rbac:initialize

Вот так выглядит мой config.yml:

sylius_rbac:
    driver: doctrine/orm
    security_roles:
            ROLE_ADMINISTRATION_ACCESS: Can access backend
    roles:
        app.admin:
            name: Administrator
            description: Administrator
        app.product_manager:
            name: Product Manager
            description: muchos productos
            permissions: [app.product_update, app.product_create]
    roles_hierarchy:
            app.admin: [app.product_manager]
    permissions:
        app.product_update: Update product
        app.product_create: Create product
        app.product_manage: Manage product
    permissions_hierarchy:
            app.product_manage: [app.product_create, app.product_update]

У кого-нибудь есть подсказка, как это решить?

Спасибо!

1 ответ

Решение

Sylius/Rbac использует поведение дерева из Atlantic18/DoctrineExtensions,

Вы можете использовать это в системе Symfony, используя stof/StofDoctrineExtensionsBundle,

После того, как он будет установлен, вам нужно включить поведение дерева в вашем app/config/config.yml лайк..

stof_doctrine_extensions:
    orm:
        default:
            tree: true

Это должно заставить слушателя зарегистрироваться правильно, а затем ваши поля будут заполнены автоматически.

Другие вопросы по тегам