Мне трудно обдумать это, я начал проект, основанный на 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
Теперь я прошел трассировку стека (абстракция yay) и черезнекоторый исходный код и придумал следующее:
ModelToldTransformer ожидает, что первый аргумент будет иметь тип ModelManagerInterface
(см. github )
Аргумент передается из doctrine-phpcr-admin-bundle
(см. github )
Поле создается без опции 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
Вот суть ревизиичто изменилось
Как только это исправлено, вызов не вызывает исключение, но также неПод любыми полями, просто кнопку Add new
снова и ничего больше.
Я бы очень хотел, чтобы вы указали, что делать дальше, я уверен, что определение model_manager
- это не правильный путь(и это никоим образом не исправляет всю эту чертову вещь), но из-за уровня абстракции действительно трудно копаться в нем и находить, что не так.
Это список зависимостей который я сейчас установил.
И это сонатная конфигурация , объединенная в один файл.
Я хотел бы предоставить еще больше информации, но я не уверен, чтоостальное будет актуально