2016-03-03 34 views
0

我想创建一个基于数据库表的实体。我按照这些步骤:Doctrine/Symfony entity generator and generating entity from one table,那就是,在终端:在Symfony中,src/AppBundle/Resources/config/doctrine/*。orm.yml文件的用途是什么?

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 \实体\’用户”

我觉得Symfony/Doctrine开始使用这些XML文件来映射我的PHP代码到数据库模式。但为什么?我不想要它。我只是想要Doctrine创建一个实体。

p.s.当我删除这个client.orm.yml文件时,一切正常。但我不明白发生了什么,我该如何妥善处理。

+1

您可以在实体创建过程后删除这些文件。这些文件用于元数据映射。你可以阅读这个http://martinfowler.com/eaaCatalog/metadataMapping.html和http://martinfowler.com/eaaCatalog/dataMapper.html –

+0

@MertÖksüz虽然我仍然不明白为什么学说不这样做(删除这些文件),而是给我一个相当奇怪的错误信息,但是...感谢您的链接!我从来没有想过有这么多的模式,我不知道:) –

+1

为什么学说不删除?因为,这是转换过程的第一步。在命令学习之后,您的第一个命令创建这些文件,并且正在创建与这些文件相关的实体文件。 :) –

回答