Я пытаюсь использовать Doctrine в Symfony 2.5 с конфигурацией XML для сопоставления сущности.Doctrine2 + Symfony2: Как использовать объекты Doctrine с именами с Symfony2?
У меня есть класс Namespaced Bar
: ACME\TestBundle\Entity\Foo\Bar
Поскольку у меня есть много сущностей они не могут постоянно находятся в ACME\TestBundle\Entity
пространства имен, но они должны быть введен в суб-пространства имен.
Создание объектов не проблема, но я не могу понять, куда помещать файлы конфигурации ORM XML.
Resources/config/doctrine/Foo/Bar.orm.xml
Я попытался, который не находит файл отображения:
$ php app/console doctrine:schema:create --dump-sql
No Metadata Classes to process.
Я попытался Resources/config/doctrine/Bar.orm.xml
, которая игнорирует дополнительные Foo
пространства имен Унтер Entity
, хотя полное пространство имен правильно дается в Bar.orm.xml
в name
элементе ,
$ php app/console doctrine:schema:create --dump-sql
[Doctrine\Common\Persistence\Mapping\MappingException]
Class 'ACME\TestBundle\Entity\Bar' does not exist
Что мне недостает? Каково правильное место для файла сопоставления XML для этих классов с именами?
Заранее за вашу помощь.
Попробуйте использовать 'Foo.Bar.orm.xml'. –
@ пользователь3749178 правильный. Файл сопоставления файлов находится в разделе Ресурсы/config/doctrine. Это своего рода двухстороннее отображение. Несмотря на то, что файл сопоставления содержит полное имя сущности, система должна иметь возможность находить файл сопоставления на основе имени сущности. Не знаете, где это задокументировано. Я подумал об этом некоторое время назад, посмотрев на сообщения об ошибках. Можно использовать и другие каталоги сопоставлений, но это больно. http://symfony.com/doc/current/reference/configuration/doctrine.html#mapping-configuration – Cerad