15

Doctrine ORM for PHP (v1.1.5) を使い始めたばかりで、予期せぬ事態に遭遇しました。

以下を使用して、db (MySQL 4) からモデルを生成しています。

Doctrine::generateModelsFromDb($pathToModels);

次に、以下を使用してモデルから YAML を生成します。

Doctrine::generateYamlFromModels($pathToSchema . '/schema.yml', $pathToModels);

生成されたモデルでは、列名 ( で定義されているhasColumn()) は、db と同じケースをフィールドに使用します。すべて良い。

ただし、生成された YAML では、モデルの大文字と小文字に関係なく、列名はすべて小文字です。

generateYamlFromModels()これを微調整するためにおそらく使用できる方法で利用できるオプションはないようです。おそらく接続レベル、またはマネージャーレベルなどで、どこかに設定する必要がある他の属性はありますか? バグかも?

どんなアイデアでも大歓迎です。ありがとう、乾杯!

4

1 に答える 1

2

これはバグのようです。YAML は大文字と小文字を区別し、Doctrineは大文字と小文字を区別generateYAMLFromModels() すると文書化されているためです。2.0 ベータ版にあった大文字と小文字の区別のバグを見つけました。おそらく、これはあなたのプログラムに影響を与えたバグです。ただし、他に何もなければ、Dimitris Baltas のコメントが最適な回避策のようです。

もう 1 つの方法は、DB からモデルを生成し、次にモデルから yaml を生成することです。これは右のケーシングを保持します。

ハッピーハンティング:)

于 2011-08-15T22:35:50.567 に答える