原则 2 CRUD 生成器和标识符的问题,不称为"id"



情况如下:我对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.');
}

相关内容

  • 没有找到相关文章

最新更新