#php #symfony #doctrine-orm #doctrine #symfony4
#php #symfony #doctrine-orm #доктрина #symfony4
Вопрос:
На самом деле я сталкивался с этой проблемой несколько раз, когда при использовании php bin / console make:entity он использует неправильное пространство имен для ManagerRegistry в репозитории.
Это то, что он туда вставил:
use DoctrinePersistenceManagerRegistry;
Который затем выдает следующую ошибку:
Cannot autowire service "AppRepositoryPrivateCallBookingAvailabilityRepository": argument "$registry" of method "__construct()" has type "DoctrinePersistenceManage
rRegistry" but this class was not found.
Глядя на другие репозитории, это не всегда так, те, которые работают, на самом деле используют:
use DoctrineCommonPersistenceManagerRegistry;
Есть идеи, почему он это делает?
Ответ №1:
Вам нужно понизить версию symfony/maker-bundle
, потому DoctrineCommonPersistenceManagerRegistry
что она была переименована в DoctrinePersistenceManagerRegistry
в Doctrine, и похоже, что ваша версия Doctrine имеет старое имя этого класса.
Также в качестве опции вы можете обновить Doctrine до новейшей версии.
Более подробную информацию вы можете найти здесь https://github.com/symfony/maker-bundle/pull/518 .