1

我很难解决这个问题,我已经开始了一个基于 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

现在我已经浏览了堆栈跟踪(是的抽象)和一些源代码,并提出了以下内容:

  1. ModelToldTransformer 期望第一个参数是类型ModelManagerInterface(参见github

  2. 参数是从doctrine-phpcr-admin-bundle(参见github)传递的

  3. 该字段是在没有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不是正确的方法(而且它也不能解决整个该死的事情),但是由于抽象级别,真的很难深入研究并找出问题所在。

这是我当前已安装的依赖项列表。

这是奏鸣曲配置合并到一个文件中。

我很想提供更多信息,但我不确定还有什么相关的

4

0 回答 0