Я пытаюсь установить и использовать пакет Sonata Admin Propel.
После базовой настройки все работает, я вижу панель администратора.
Но когда я пытаюсь определить службу администратора для модели, я получаю The service "sonata.admin.portfolio" has a dependency on a non-existent service "sonata.admin.manager.propel"
ошибка, которая является истинной, поскольку я не вижу ее в загруженных службах (using php app/console container:debug
).
I installed it using composer;
"require": {
"propel/propel-bundle": "1.4.*",
"sonata-project/propel-admin-bundle": "dev-master"},
Зарегистрировал его в AppKernel.php;
$bundles = array(
new Propel\PropelBundle\PropelBundle(),
// sonanta admin
new Sonata\CoreBundle\SonataCoreBundle(),
new Sonata\BlockBundle\SonataBlockBundle(),
new Knp\Bundle\MenuBundle\KnpMenuBundle(),
new Sonata\AdminBundle\SonataAdminBundle(),
);
Мой админ класс для модели использует Sonata\PropelAdminBundle\Admin\Admin
и определяется в admin.yml как;
services:
sonata.admin.portfolio:
class: Foo\CoreBundle\Admin\PortfolioAdmin
tags:
- { name: sonata.admin, manager_type: propel, group: "Content", label: "Portfolio" }
arguments:
- ~
- Foo\CoreBundle\Model\Portfolio
- FooCoreBundle:PortfolioAdmin
calls:
- [ setTranslationDomain, [FooCoreBundle]]
Что я пропустил?
Просто маленькая ошибка! Вы включили PropelBundle
по мере необходимости для Propel ORM, но вы не включили SonataPropelAdminBundle
который объединяет Propel с Sonata Admin.
Для этого добавьте эту строку в свой AppKernel.php
:
new Sonata\PropelAdminBundle\SonataPropelAdminBundle(),
Других решений пока нет …