未使用 SonataMediaBundle 找到 ManagerInterface

Posted

技术标签:

【中文标题】未使用 SonataMediaBundle 找到 ManagerInterface【英文标题】:ManagerInterface not found with SonataMediaBundle 【发布时间】:2014-02-07 10:18:12 【问题描述】:

我尝试按照here 的描述安装SonataMediaBundle。 安装后出现此错误:

php Fatal error:  Interface 'Sonata\CoreBundle\Model\ManagerInterface' not found in /var/www/prj/vendor/sonata-project/media-bundle/Sonata/MediaBundle/Model/MediaManagerInterface.php on line 20

Sonata\CoreBundle\Entity\ManagerInterface,但没有Sonata\CoreBundle\Model\ManagerInterface! 问题是什么?

【问题讨论】:

【参考方案1】:

CoreBundleAdminBundle 最近都已更新,并且此命名空间已更改。在解决之前,您可以通过在 composer.json 中包含这些行来确保您使用的是最新版本:

"require": 
    ...
    "sonata-project/core-bundle": "dev-master",
    "sonata-project/media-bundle": "dev-master"

【讨论】:

这给了我一个错误ContextErrorException: Runtime Notice: Declaration of Sonata\UserBundle\Controller\RegistrationController::registerAction() should be compatible with FOS\UserBundle\Controller\RegistrationController::registerAction()如何解决这个问题? 这似乎是一个不同的问题,正在跟踪here。解决此类问题的方法可能是使用稳定版本而不是 dev-master 我不明白。如果我不使用dev-master,我会收到 OP 发布的错误。你介意在你的 composer.json 中给我你所有的 sonata-project 声明吗?我想我可能在某个地方有错误的版本。 请注意,发布的错误(和我的答案)是关于 SonataMediaBundle 而你的是关于 SonataUserBundle,它们是独立的。我的建议是回滚到SonataUserBundle 的稳定版本,因为触发此错误的原因似乎是最近的更改。不幸的是,我不使用该捆绑包,因此我无法共享任何工作配置,抱歉。 我将所有 sonata-project 捆绑包设置为 dev-master,它现在可以运行了。所有这些包之间的混乱。起初,我只是用 composer 更新了依赖关系,然后它立即抛出了这个错误。【参考方案2】:

从 Sonata 的沙箱更新您的 composer.json; https://github.com/sonata-project/sandbox/blob/2.3-develop/composer.json#L45-L63

    "sonata-project/easy-extends-bundle": "~2.1@dev",
    "sonata-project/seo-bundle": "~1@dev",
    "sonata-project/admin-bundle": "~2.2@dev",
    "sonata-project/doctrine-orm-admin-bundle": "~2.2@dev",
    "sonata-project/block-bundle": "~2.2@dev",
    "sonata-project/media-bundle": "~2.2@dev",
    "sonata-project/user-bundle": "~2.2@dev",
    "sonata-project/cache-bundle": "~2.1@dev",
    "sonata-project/page-bundle": "~2.3@dev",
    "sonata-project/core-bundle": "~2.2@dev",

注意 core-bundle": "~2.2@dev",

【讨论】:

以上是关于未使用 SonataMediaBundle 找到 ManagerInterface的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 SonataMediaBundle 在树枝中获取图像路径?

安装 SonataMediaBundle 后映射异常

SonataMediaBundle - 如何上传图片?

SonataMediaBundle:找不到文件/图像

使用 SonataMediaBundle 上传到 AmazonS3

SonataMediaBundle : 允许用户上传链接