У меня есть 3 вида сущностей (на самом деле это документы, так как я работаю с Mongo, но я надеюсь, что это не повлияет на решение):
AdminBundle\Document\Sector
, наследуется от LocationBundle\Document\OperationAreaSector
, наследуется от простого словаря: DictionaryBundle\Document\Sector
Я создал модуль Sonata Admin, который позволяет мне редактировать первый AdminBundle\Document\Sector
- он такой же, как и в LocationBundle, но имеет несколько дополнительных методов получения и установки, которые помогают работать с ним.
Раньше он работал в момент создания, но недавно я заметил, что хотя Admin по-прежнему работает нормально для Листинга, я получаю сообщение об ошибке при попытке войти в режим редактирования для любой записи.
Вот ошибка:
Neither the property "xxx" nor one of the methods "getXxx()", "xxx()", "isXxx()", "hasXxx()", "__get()" exist and have public access in class "DictionaryBundle\Document\Sector".
Похоже, что в какой-то момент он начал использовать базовый базовый класс для построения формы. Я не уверен, что это связано с какими-либо недавними изменениями в Symfony или Sonata Admin. Пока моя отладка не дала никаких результатов, так что, возможно, у вас есть идея, что может быть не так, что Form использует другие модели, чем List?
Вот объявление конфигурации:
AdminBundle\Admin\SectorAdmin:
arguments: [~, AdminBundle\Document\Sector, ~]
tags:
- { name: sonata.admin, manager_type: doctrine_mongodb, label: Sector, group: group.sectors }