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 管理员 - 找不到服务的主要内容,如果未能解决你的问题,请参考以下文章

SonataMediaBundle:找不到文件/图像

找不到推进配置文件

PHP 致命错误:在第 47 行的 /var/www/znata.com/app/AppKernel.php 中找不到类 'Application\Sonata\MediaBundle\Applica

PHP 使用 Propel

致命错误:在 ConnectionFactory.php 中找不到类 ConnectionWrapper

Symfony Sonata Admin 仅将属性显示为只读文本