1

状況は次のとおりです。 私は Symfony2 を初めて使用し、すべて気に入っていますが、Doctrine の CRUD ジェネレーターに問題があります。YAML ファイルから始めて Doctrine でエンティティを生成しましたが、doctrine:generate:crud コマンドラインで CRUD を生成できません。

問題: 何らかの理由で「id」フィールドと getId() メソッドを設定する必要がありますが、クラス図と関係スキーマで行ったすべての作業が台無しになります…</p>

私の質問は: フィールド名をそのままにして、Doctrine に CRUD を生成させる方法はありますか?

YAML の例:

XXX\XXXBundle\Entity\Utilisateur:
 type: entity
 table: utilisateur
 id:
  pseudo:
   type: string
 fields:
  nom:
   type: string

私はこれで立ち往生しています...私はそれを変更しようとしました:

XXX\XXXBundle\Entity\Utilisateur:
 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 フィールドを追加する必要があります…</p>

4

1 に答える 1

0

いいえ、できません。

すでに変更リクエストがあります: https://github.com/sensio/SensioGeneratorBundle/issues/57

DoctrineCrudGenerator.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.');
}
于 2012-07-31T18:17:11.190 に答える