2012-11-15 26 views
8

我有一些字段的表“my_table”。 我想在myBundle中使用“my_table”生成实体。但我不想重新创建MyBundle中的所有实体。 我该怎么做?如何从symfony2中的现有表生成实体?

+3

HTTP ://symfony.com/doc/2.0/cookbook/doctrine/reverse_engineering.html –

回答

15

这里是你可以做的方式,

第一步,问主义内省数据库并生成相应的XML或YML元数据文件。

php app/console doctrine:mapping:convert [xml|yml] Path/To/MyBundle/Resources/config/doctrine/metadata/orm --from-database --force --filter=MyTable 

第二步,请学说导入架构,并通过执行以下两条命令建立相关的实体类。

php app/console doctrine:mapping:import MyBundle [xml|yml|annotation] --filter=MyTable 

php app/console doctrine:generate:entities Path\To\MyBundle\EntityFolder\\MyTable 

看看文档的How to generate Entities from an Existing Database部分

+1

在最后的命令中,我能够使用快捷键'MyBundle:MyTable'来替代Path \ To \ MyBundle \ EntityFolder \ MyTable ' – Nate

2
php app/console doctrine:mapping:import "MyCustomBundle" xml --filter=MyMatchedEntity 
6

简单的工作解决方案的Symfony 2.7选项注释和[/ XML /阳明]见http://symfony.com/doc/current/cookbook/doctrine/reverse_engineering.html

在做3个命令3个步骤:

命令#1:

$ php app/console doctrine:mapping:import --force AppBundle xml --filter="Meeting" 

输出:

写C:\ XAMPP \ htdocs中\ localxyz的\ src \的appbundle /资源/配置/教义/ Meeting.orm.xml


命令# 2:

$ php app/console doctrine:mapping:convert annotation ./src/AppBundle/Entity --from-database --filter="Meeting" 

产量:

处理实体 “会议”

导出 “注释” 映射信息为 “C:\ XAMPP \ htdocs中\ localxyz \ SRC \实体”


命令#3:

$ php app/console doctrine:generate:entities AppBundle:Meeting --no-backup 

输出:

发电实体 “的appbundle \实体\会议” 产生的appbundle \实体\会议

其中:

的appbundle正是你的 “的appbundle 2” 中。7 symfony的 Meeting是目标表(区分大小写)

可以肯定,检查此目录:

C:\ XAMPP \ htdocs中\的Myproj \ SRC \的appbundle /资源/配置/教义/ Meeting.orm .XML

C:\ XAMPP \ htdocs中\的Myproj的\ src \的appbundle /资源/配置/教义/ MeetingOriginal.orm.xml

,并确保你只对你有要创建的表.xml文件实体类文件,没有其他人。

它对我很好。

对于解释,请阅读:http://symfony.com/doc/current/cookbook/doctrine/reverse_engineering.html

+0

这将适用于预设t实体管理器。如果必须从不同数据库中提取数据,请提供以下参数--em =“ENTITY MANGER NAME” –

0

尽管这是一个老的文章,但如果有人得到以下错误,

Database does not have any mapping information.

检查

如果你的表名是blog_post然后在过滤器选项使用BlogPost而不是blog_post

参考:https://stackoverflow.com/a/27019561/6504104

虽然这是由上面,但我错过了答案覆盖,并收到此错误

所以我想使这个明确的

谢谢...

相关问题