如何从symfony2中的现有表生成实体?

Ala*_*tor 10 php symfony

我有一些字段"my_table".我想在MyBundle中使用"my_table"生成实体.但我不想在MyBundle中重新创建所有实体.我怎样才能做到这一点?

Ahm*_*ani 16

这是你可以做到的方式,

第一步,请Doctrine内省数据库并生成相应的xml或yml元数据文件.

php app/console doctrine:mapping:convert [xml|yml] Path/To/MyBundle/Resources/config/doctrine/metadata/orm --from-database --force --filter=MyTable
Run Code Online (Sandbox Code Playgroud)

第二步,通过执行以下两个命令,让Doctrine导入模式并构建相关的实体类.

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

php app/console doctrine:generate:entities Path\To\MyBundle\EntityFolder\\MyTable
Run Code Online (Sandbox Code Playgroud)

请查看文档中的" 如何从现有数据库生成实体"部分


Dun*_*ung 6

Symfony 2.7选项注释和[/ xml/yml]的简单工作解决方案,请参阅http://symfony.com/doc/current/cookbook/doctrine/reverse_engineering.html

通过3个步骤执行3个命令:

命令#1:

$ php app/console doctrine:mapping:import --force AppBundle xml --filter="Meeting"
Run Code Online (Sandbox Code Playgroud)

输出:

编写C:\ xampp\htdocs\localxyz\src\AppBundle/Resources/config/doctrine/Meeting.orm.xml


命令#2:

$ php app/console doctrine:mapping:convert annotation ./src/AppBundle/Entity --from-database --filter="Meeting"
Run Code Online (Sandbox Code Playgroud)

输出:

处理实体"会议"

将"注释"映射信息导出到"C:\ xampp\htdocs\localxyz\src\Entity"


命令#3:

$ php app/console doctrine:generate:entities AppBundle:Meeting --no-backup
Run Code Online (Sandbox Code Playgroud)

输出:

生成实体"AppBundle\Entity\Meeting",生成AppBundle\Entity\Meeting

哪里:

AppBundle正是你在2.7 symfony中的"AppBundle"会议是目标表(区分大小写)

请务必检查以下目录:

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