SonataDoctrineORMAdminExtension.php

Posted

技术标签:

【中文标题】SonataDoctrineORMAdminExtension.php【英文标题】: 【发布时间】:2016-04-27 10:47:32 【问题描述】:

我正在尝试在我的 symfony 项目中安装 sonataAdminBundle,这是我的 composer.json 文件

我正在关注https://sonata-project.org/bundles/admin/2-3/doc/getting_started/installation.html

    "sonata-project/admin-bundle": "~2.0",
    "sonata-project/doctrine-orm-admin-bundle": "2.2.x-dev"

我把它放在我的 appkernel 文件中

        new Sonata\CoreBundle\SonataCoreBundle(),
        new Sonata\BlockBundle\SonataBlockBundle(),
        new Knp\Bundle\MenuBundle\KnpMenuBundle(),
        new Sonata\AdminBundle\SonataAdminBundle(),
        new Sonata\DoctrineORMAdminBundle\SonataDoctrineORMAdminBundle(),

在我的 config.yml 文件中 sonata_block: default_contexts: [cms] blocks: sonata.admin.block.admin_list: contexts: [admin] 我有这个问题

第 29 行中的 ClassNotFoundException: 试图从命名空间加载类“AbstractSonataAdminExtension” “奏鸣曲\AdminBundle\DependencyInjection”。你忘了一个“使用” 另一个命名空间的声明?

【问题讨论】:

【参考方案1】:

这是 Composer 的问题 - Composer 生成的一组依赖项导致了这个错误。 截至本文发布时,Symfony 的长期支持版本为 2.8.3。下面是一组命令命令,这些命令对我有用,可以让这个版本的 Symfony 与 Sonata Admin 一起运行:

    安装 Symfony:

    $ symfony new my_project_name lts
    

    将 Sensio Generator 捆绑包降级到 2.3 版:

    $ composer require sensio/generator-bundle "2.3.*"
    

    安装 Sonata Admin 包及其依赖项:

    $ composer require sonata-project/admin-bundle "2.3.*"
    $ composer require sonata-project/doctrine-orm-admin-bundle "2.3.*"
    $ composer require sonata-project/jquery-bundle
    
    对于 jquery-bundle,您可能会看到错误:The child node "default_contexts" at path "sonata_block" must be configured. 如果看到,请转到下一步。完成下一步后,再次尝试安装 jquery-bundle。

    按照 Sonata 管理员安装文档 here 中所述执行其余步骤:在 app/AppKernel.php 中注册已安装的捆绑包,更改 app/config/config.ymlapp/config/routing.yml,清除缓存并安装资产。

之后,您应该可以运行该应用了。

【讨论】:

以上是关于SonataDoctrineORMAdminExtension.php的主要内容,如果未能解决你的问题,请参考以下文章