好的,我的教义最后一个问题是:generate:entities命令
我运行以下命令,我在
中获得了预期的文件/src/MyNamespace/Bundle/MyNamespaceBundle/Resources/config/doctrine/metadata/orm
comamnd:
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和prod yml文件来控制我可以连接的主机)
# 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
我运行了学说:生成:实体agin(两种方式)并且仍然有错误。 我查看了文件中的命名空间,看到它指向了工作命名空间。我更新了:
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
文档:
来源:
答案 0 :(得分:0)
你的第一行需要以:结尾:
MyNamespace\Bundle\MyNamespaceBundle\Entity\TblReports:
<yml> data.
您似乎将注释与yml混合。选择一个并坚持下去。我不使用注释,所以其余的是yml注释。 doctrine:mapping:import / convert with yml选项生成yml文件将yml文件放在Bundle / Resources / config / doctrine中。
然后使用yml文件的集合来创建实体类,并将它们放在每个yml文件中指定的位置,默认为NamespaceBundle \ Entity。