情况如下:我对Symfony2有点陌生,喜欢它,但我对Doctrine的CRUD生成器有意见。我已经从YAML文件开始用Doctrine生成了实体,但不能用Doctrine:generate:CRUD命令行生成它们的CRUD。
问题:出于某种原因,我需要设置一个"id"字段和一个getId()方法,但这有点破坏了我在类图和关系模式上所做的所有工作…
我的问题是:有没有一种方法可以保持我的字段名称不变,并让Doctrine仍然生成我的CRUD?
YAML示例:
XXXXXXBundleEntityUtilisateur:
type: entity
table: utilisateur
id:
pseudo:
type: string
fields:
nom:
type: string
我被这个卡住了…我试着把它改成:
XXXXXXBundleEntityUtilisateur:
type: entity
table: utilisateur
fields:
pseudo: # Le pseudo correspond au nom affiché pour identifier un utilisateur.
type: string
id: true
但它不会改变任何事情,我最终总是这样:
[RuntimeException]
The CRUD generator expects the entity object has a primary key field named "id" with a getId() method.
如果有人能帮忙,我将不胜感激!最坏的情况是,我必须修改我的所有实体,以添加一个愚蠢的ID字段,其中包含一个自动生成的整数…
不,这是不可能的。
已经存在更改请求:https://github.com/sensio/SensioGeneratorBundle/issues/57
它被硬编码在DoctrineRudGenerator.php的第69-71行:
if (!in_array('id', $metadata->identifier)) {
throw new RuntimeException('The CRUD generator expects the entity object has a primary key field named "id" with a getId() method.');
}