好吧,我有教義最後一個問題:生成:實體命令學說生成實體命名空間問題?
我運行下面的命令,我得到
/src/MyNamespace/Bundle/MyNamespaceBundle/Resources/config/doctrine/metadata/orm
comamnd預期的文件(S):
php app/console doctrine:mapping:convert yml ./src/MyNamespace/Bundle/MyNamespaceBundle/Resources/config/doctrine/metadata/orm --from-database --em=my_manager --filter=TblReports --verbose
我看到了TblReports.orm.yml
文件,第一行是:
TblReports
命令:(這應該是註釋而不是yml? )
php app/console doctrine:mapping:import MyNamespaceBundle yml --em=my_manager --filter=TblReports
我運行上面的命令,我在這裏
/src/MyNamespace/Bundle/MyNamespaceBundle/Resources/config/doctrine/
同名得到文件,從第一個命令生成的第一個文件,只是在不同的位置,第一行(我假設是命名空間)
TblReports.orm.yml
現在的第一行是:
MyNamespace\Bundle\MyNamespaceBundle\Entity\TblReports
,但我認爲它需要
MyNamespace\Bundle\MyNamespaceBundle\Entity\Reports\TblReports
現在我運行一個命令
php app/console doctrine:generate:entities MyNamespaceBundle --path=src --no-backup
我得到這個錯誤
[RuntimeException]
Bundle "MyNamespaceBundle" does not contain any mapped entities.
如果我像這樣運行
命令php app/console doctrine:generate:entities MyNamespaceBundle:Reports --path=src --no-backup
我得到這個錯誤(但命名空間看起來是正確的)
[RuntimeException]
Namespace "MyNamespace\Bundle\MyNamespaceBundle\Entity\Reports" does not contain any mapped entities.
這裏是my_manager(config.yml)
# Doctrine Configuration
doctrine:
dbal:
default_connection: my_database
connections:
my_database:
driver: pdo_pgsql
port: 5432
dbname: tbl_reports
user: foo_user
password: foo_pass
charset: UTF8
mapping_types:
bit: string
orm:
auto_generate_proxy_classes: "%kernel.debug%"
default_entity_manager: my_manager
entity_managers:
my_manager:
connection: my_database
mappings:
MyNamespaceBundle:
mapping: true
dir: Entity/Reports
在config_dev.yml(我用dev和督促YML文件來控制主機(S)我可以連接到)
# Doctrine Configuration
doctrine:
dbal:
connections:
my_database:
host: 172.0.0.1
問題:
- 爲什麼我得到這個錯誤?
- 我該如何解決?
相關問題:
更新#1:
玉以及我跑第二個命令爲annotation
,而不是yml
和文件被生成於:
MyNamespace\Bundle\MyNamespaceBundle\Entity
命令:
php app/console doctrine:mapping:import MyNamespaceBundle annotation --em=my_manager --filter=TblReports
我跑學說:生成:實體(雙向),並仍然得到了錯誤。我決定將這些文件移動到該目錄
MyNamespace\Bundle\MyNamespaceBundle\Entity\Reports
我跑學說:生成:實體阿恩(雙向),並仍然得到了錯誤。 我查看了文件中的命名空間,並看到它指向了工作命名空間。我更新來自:
MyNamespace\Bundle\MyNamespaceBundle\Entity\TblReports
到
MyNamespace\Bundle\MyNamespaceBundle\Entity\Reports\TblReports
運行此命令
php app/console doctrine:generate:entities MyNamespaceBundle:Reports --path=src --no-backup
和現在的作品
Generating entities for namespace "MyNamespace\Bundle\MyNamespaceBundle\Entity\Reports"
所以我想問題#3:
- 如何獲得第二個命令以在導入中添加正確的名稱空間?
我試過,但沒有骰子
php app/console doctrine:mapping:import MyNamespaceBundle:Reports annotation --em=my_manager --filter=TblReports
文檔:
來源:
- https://github.com/doctrine/DoctrineBundle/blob/master/Command/ImportMappingDoctrineCommand.php
- https://github.com/doctrine/DoctrineBundle/blob/master/Command/GenerateEntitiesDoctrineCommand.php
謝謝,我明白這一點。我該如何改變這個名字空間?從NamespaceBundle \ Entity到NamespaceBundle \ Another \ Namespace \ Entity –
將教條文件放入與該命名空間相關的目錄中,並在那裏生成它們? – Lighthart
你能列出所有三個命令嗎?我正在嘗試你的建議,但我得到的只是錯誤。訂單是否重要? –