На основании некоторых комментариев может показаться, что основной проблемой является наличие нескольких менеджеров сущностей.В настоящее время существует множество автоматизированных функций, которые хорошо работают для одного менеджера сущностей, но не так много для нескольких менеджеров.
Вам в основном нужно определять свои службы вручную.
# services.yaml
# assume we have
# doctrine.orm.default_entity_manager and
# doctrine.orm.legacy_entity_manager
# already defined through configuration
# define legacy repository
order_repository.legacy:
class: Whatever\Repository\OrderRepository
factory: ['doctrine.orm.legacy_entity_manager', 'getRepository']
arguments:
- 'Whatever\Entity\Order'
# define default repository
order_repository.default:
class: Whatever\Repository\OrderRepository
factory: ['doctrine.orm.default_entity_manager', 'getRepository']
arguments:
- 'Whatever\Entity\Order'
# then your service
Whatever\Service\MyService:
'@order_repository.legacy'
И выдолжно быть хорошо идтиОбратите внимание, что ваш репозиторий должен расширять EntityRepository, а не ServiceEntityRepository пакета доктрины.
И если вы чувствуете, что это слишком много, то просто введите реестр менеджера сущностей пакета доктрины и сделайте то, что ControllerTrait :: getDoctrine ($ name) делает.