Sonata Propel 管理员 - 找不到服务
Posted
技术标签:
【中文标题】Sonata Propel 管理员 - 找不到服务【英文标题】:Sonata Propel Admin - Can't Find Service 【发布时间】:2014-12-16 17:59:34 【问题描述】:我正在尝试安装和使用 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]]
我错过了什么?
【问题讨论】:
您忘记在AppKernel.php
中启用 Sonata Propel 管理包:new Sonata\PropelAdminBundle\SonataPropelAdminBundle()
如果这能解决您的问题,请告诉我,我会将此评论作为答案。
@sjagr 恭喜您发现了错误!!将其发布为答案-您应该得到代表,因为您的眼睛比我的更好。
【参考方案1】:
只是一个小错误!您根据需要为 Propel ORM 启用了 PropelBundle
,但您没有启用将 Propel 与 Sonata Admin 集成的 SonataPropelAdminBundle
。
为此,请将此行添加到您的AppKernel.php
:
new Sonata\PropelAdminBundle\SonataPropelAdminBundle(),
Here are the installation instructions for Propel Admin
【讨论】:
以上是关于Sonata Propel 管理员 - 找不到服务的主要内容,如果未能解决你的问题,请参考以下文章
PHP 致命错误:在第 47 行的 /var/www/znata.com/app/AppKernel.php 中找不到类 'Application\Sonata\MediaBundle\Applica