我嘗試在Symfony 2.5中使用Doctrine並將XML配置用於實體映射。Doctrine2 + Symfony2:如何使用Symfony2命名空間的學說實體?
我有一個命名空間中的類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
命名空間的Unter 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'。 – 2014-10-10 11:22:39
@ user3749178是正確的。文件映射文件位於Resources/config/doctrine下。這是一種雙向映射。即使映射文件包含實體的全名,系統也需要能夠根據實體名稱找到映射文件。不知道這是記錄在哪裏。我前段時間通過查看錯誤消息發現了它。也可以使用不同的映射目錄,但這很痛苦。 http://symfony.com/doc/current/reference/configuration/doctrine.html#mapping-configuration – Cerad 2014-10-10 13:22:54