关于 symfony:Sonata 管理/媒体冲突(CRUDController)

Sonata Admin / Media conflict (CRUDController)

我在 sonate 管理员和媒体包之间存在冲突/问题。
这是错误:

1
2
3
Runtime Notice: Declaration of Sonata\\MediaBundle\\Controller\\MediaAdminController::render() should be compatible with Sonata\\AdminBundle\\Controller\\CRUDController::render($view, array $parameters = Array, Symfony\\Component\\HttpFoundation\
esponse $response = NULL, Symfony\\Component\\HttpFoundation\
equest $request = NULL)

在后端我尝试与媒体控制面板交互时发生错误(由媒体包自动添加)。

在谷歌上唯一提到这个错误是在谈论依赖问题。

https://github.com/sonata-project/SonataMediaBundle/issues/731

这里是 composer.json

1
2
3
"sonata-project/admin-bundle":"dev-master",
"sonata-project/doctrine-orm-admin-bundle":"^2.3",
"sonata-project/media-bundle":"^2.3"

如果更改为"sonata-project/media-bundle":"dev-master" 它也不起作用

1
The service"sonata.media.admin.media" has a dependency on a non-existent service"sonata.classification.manager.category".

不管怎样,我不确定我是否想使用"开发"包。

这个奏鸣曲项目还在工作吗?文档已过时

我对这些奏鸣曲包感到非常厌倦 - 似乎是个好主意,但正确配置它们非常耗时......


所以这是诀窍:

在您的 composer.json 中,您需要使用以下版本:

1
2
3
4
5
6
7
 "sonata-project/admin-bundle":"^2.3",
 "sonata-project/doctrine-orm-admin-bundle":"^2.3"

"require-dev": {
       "sensio/generator-bundle":"~2.3", <== CHANGE THIS !!!

    },

在 require-dev 中,您需要将 "sensio/generator-bundle": "3.0" 更改为 "sensio/generator-bundle": "~2.3"

这并不能解决原来的问题,但会让奏鸣曲管理员/媒体一起工作。

感谢 chalasr 的帮助。