我想基于数据库表创建一个实体。我按照以下步骤操作: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
这创建了实体" Client"。但是,它还在src / AppBundle / Resources / config / doctrine目录中创建了一个client.orm.yml文件。这会导致问题 - 也就是说,我的应用程序现在崩溃并显示错误消息:
"找不到名为' User.orm.yml'的映射文件。上课 '的appbundle \实体\用户'"
我认为Symfony / Doctrine开始使用这些yml文件将我的php代码映射到数据库模式。但为什么?我不想要它。我只是想让Doctrine创建一个实体。
P.S。当我删除此client.orm.yml文件时,一切正常。但我不明白发生了什么,我该如何正确处理呢。
答案 0 :(得分:2)
您可以在实体创建过程后删除这些文件。这些文件用于元数据映射。
你可以读这个 martinfowler.com/eaaCatalog/metadataMapping.html和martinfowler.com/eaaCatalog/dataMapper.html
为什么学说不删除?因为,这是转换过程的第一步。在命令到doctrine之后创建这些文件的第一个命令,它正在创建用这些文件引用的实体文件。 :)