1

ドキュメントによると:

グローバル ファイルを追加し、このファイルに複数のエンティティを追加できます。

私が試したのは:

$driver = new \Doctrine\ORM\Mapping\Driver\SimplifiedXmlDriver(array("orm-xml"));
$driver->setGlobalBasename('global');

// ...

$em->getClassMetadata('something_Application');

名前の付いたディレクトリがあり、ドキュメントが示唆するようorm-xmlにファイルが含まれています。global.orm.xmlスクリプトを実行しようとすると、次のようになります。

uncaught exception: No mapping file found named 'omething_Application.orm.xml' for class 'something_Application'.

エラーメッセージがクラス名の最初の文字を食べていることに最初に気づきました。そして、主な問題があります。クラスごとに 1 つの xml ベースで構成を読み取ろうとしているのに、指定したグローバル ファイルを使用しないのはなぜですか?

4

1 に答える 1

1

答えは、例が示していないものでした:addPathsメソッド:

$driver = new \Doctrine\ORM\Mapping\Driver\SimplifiedXmlDriver(array("orm-xml"));
$driver->setGlobalBasename('global');
$driver->addPaths(array("orm-xml"));

コンストラクターのパラメーターはこれのためだと思っていたことに注意してください。本当は何のためにあるのか、いまだにわかりません。

于 2012-04-21T18:41:08.560 に答える