Symfony Sonata Media Gallery中的“添加新”按钮会因PHPCR引发错误

时间:2019-01-28 07:03:56

标签: php sonata-admin sonata-media-bundle doctrine-phpcr

我很难解决这个问题,我已经启动了一个基于Symfony 4 + PHPCR + CMF + Sonata admin的项目,我对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 docs说:

model_manager
    defaults to null, but is actually calculated from the linked Admin class.
    You usually should not need to set this manually.

所以我认为Admin类没有链接到PHPCR类?

因此,我尝试在.../media-bundle/src/Admin/GalleryHasMediaAdmin.php中手动链接此链接(在另一个捆绑包中找到了类似的示例)

Here is a gist revision of what changed

固定后,该调用不会引发异常,但也不会呈现任何字段,只需再次单击Add new按钮即可。

我真的很欢迎任何下一步的指导,我敢肯定,定义model_manager并不是正确的方法(而且也不能解决所有该死的事情),但是由于水平就抽象而言,要深入研究并找出问题所在确实很困难。

这是我当前安装的list of dependencies

这是sonata configuration合并到一个文件中。

我想提供更多信息,但是我不确定还有什么要

0 个答案:

没有答案