我很难解决这个问题,我已经开始了一个基于 Symfony 4 + PHPCR + CMF + Sonata 管理员的项目,我对 Symfony 没有太多经验,我想我应该从更简单的东西开始,但是嘿...
无论如何,我已经通过循环和箍来让它工作并且我有,但有时我真的被困在我不确定是问题还是只是我的无能的事情上。
这是其中一次,我已经使媒体包工作,除了一件事(两件事,但主要是这一件事)......我上传了一些媒体文件(图像),然后我尝试将它们添加到画廊. 但是在单击Add new
呈现用于分配媒体的 html 的按钮后,我从 ajax 请求中收到以下错误:
Argument 1 passed to Sonata\AdminBundle\Form\DataTransformer\ModelToIdTransformer::__construct() must implement interface Sonata\AdminBundle\Model\ModelManagerInterface, null given, called in /var/www/html/vendor/sonata-project/admin-bundle/src/Form/Type/ModelListType.php on line 51
现在我已经浏览了堆栈跟踪(是的抽象)和一些源代码,并提出了以下内容:
ModelToldTransformer 期望第一个参数是类型
ModelManagerInterface
(参见github)参数是从
doctrine-phpcr-admin-bundle
(参见github)传递的该字段是在没有
model_manager
选项的情况下构建的(参见github)
Symfony关于表单类型的文档说:
model_manager
defaults to null, but is actually calculated from the linked Admin class.
You usually should not need to set this manually.
所以我在想 Admin 类没有链接到 PHPPCR 类?
所以然后我尝试手动链接它(我在另一个包中找到了一个类似的例子).../media-bundle/src/Admin/GalleryHasMediaAdmin.php
一旦解决了这个问题,调用就不会抛出异常,但它也不会呈现任何字段,只是Add new
再次呈现按钮,仅此而已。
我真的很欢迎任何关于下一步做什么的指示,我很确定定义model_manager
不是正确的方法(而且它也不能解决整个该死的事情),但是由于抽象级别,真的很难深入研究并找出问题所在。
这是我当前已安装的依赖项列表。
这是奏鸣曲配置合并到一个文件中。
我很想提供更多信息,但我不确定还有什么相关的