我想基于数据库表创建一个实体 . 我按照以下步骤操作:Doctrine/Symfony entity generator and generating entity from one table,即终端:
php bin/console doctrine:mapping:import --force AppBundle yml --force --filter="Client"
php bin/console doctrine:mapping:convert annotation ./src/AppBundle/Entity --from-database --filter="Client"
php bin/console doctrine:generate:entities AppBundle:Client --no-backup
这创建了实体“客户端” . 但是,它还在src / AppBundle / Resources / config / doctrine目录中创建了一个client.orm.yml文件 . 这会导致问题 - 也就是说,我的应用程序现在崩溃并显示错误消息:
“找不到名为'User.orm.yml'的类'AppBundle \ Entity \ User'的映射文件”
我认为Symfony / Doctrine开始使用这些yml文件将我的php代码映射到数据库模式 . 但为什么?我不想要它 . 我只是想让Doctrine创建一个实体 .
附:当我删除此client.orm.yml文件时,一切正常 . 但我不明白发生了什么,我应该如何正确处理它 .
1 回答
您可以在实体创建过程后删除这些文件 . 这些文件用于元数据映射 .
你可以读这个martinfowler.com/eaaCatalog/metadataMapping.html和martinfowler.com/eaaCatalog/dataMapper.html
为什么学说不删除?因为,这是转换过程的第一步 . 在命令到doctrine之后创建这些文件的第一个命令,它正在创建用这些文件引用的实体文件 . :)