Существующие вопросы не помогли.
Я все еще изучаю Symfony и создаю существующий проект. Пытаюсь запустить доктрину из моего каталога приложений.
./app/console doctrine:fixtures:load --env test
И выполнение этого дает мне следующие ошибки
Ошибка при выполнении команды "doctrine: fixtures: load --env test --em default". Сообщение: «Класс ClientPortal \ GenericBundle \ Document \ Accountant» не найден в настроенных пространствах имен цепочек _XyzProjectName \ CalendarContext \ Domain \ Model, интеграция \ GetFeedbackBundle \ Model, _XyzProjectName \ AccountingProcessContext \ Domain \ Model, _XyzProjectName \ Case {"исключение": "[объект] (Doctrine \ Common \ Persistence \ Mapping \ MappingException (код: 0): класс 'ClientPortal \ GenericBundle \ Document \ Accountant' не найден в настроенных пространствах имен _XyzProjectName \ CalendarContext \ Domain \ Модель, интеграция \ GetFeedbackBundle \ Model, _XyzProjectName \ AccountingProcessContext \ Domain \ Model, _XyzProjectName \ CaseContext \ Домен в / usr / local / var / www / 1800-api / vendor / doctrine / persistence / lib / Doctrine / Common / Persistence / Mapping /MappingException.php:22)
И это исключение выдается при попытке сохранить объект класса
ClientPortal \ GenericBundle \ Документ \ Бухгалтер '
и вот мое учение в config.yml
doctrine:
dbal:
driver: pdo_pgsql
host: '%database_host%'
dbname: '%database_name%'
user: '%database_user%'
password: '%database_password%'
orm:
auto_generate_proxy_classes: "%kernel.debug%"
auto_mapping: true
mappings:
CalendarBundle:
prefix: '_XyzProjectName\CalendarContext\Domain\Model'
IntegrationGetFeedbackBundle:
prefix: 'Integration\GetFeedbackBundle\Model'
AccountingProcessBundle:
prefix: '_XyzProjectName\AccountingProcessContext\Domain\Model'
CaseBundle:
prefix: '_XyzProjectName\CaseContext\Domain'
GenericBundle:
type: "annotation"
prefix: 'ClientPortal\GenericBundle\Document'
dir: 'src'
is_bundle: false
Фрагмент, который вызывает это исключение
$account = new ClientPortal\GenericBundle\Document\Accountant();//full namespace added for clarity - also this file lies in the same directory structure.
$account->setSfAccountantId($accountantId);
$account->setUsername($username);
$manager = new ObjectManager;
$manager->persist( $account ); //This throws the above mentioned exception
Я думаю, что файл ClientPortal \ GenericBundle \ Document \ Accountant.php загружается автоматически, поскольку во время создания его объекта не возникает исключение. Но в конфигурации или сопоставлении чего-то не хватает, из-за чего доктрина не знает, как сохранить объект.
[Исходный код] [1] Класс бухгалтера
GenericBundle (s), зарегистрированный в AppKernel
new Website\GenericBundle\WebsiteGenericBundle(),
new Admin\GenericBundle\AdminGenericBundle(),
new ClientPortal\GenericBundle\ClientPortalGenericBundle(),
new TaxApp\GenericBundle\TaxAppGenericBundle(),