4

zf2 DoctrineORMModule と DoctrienModule がインストールされています。コマンド ツールを使用してマッピング ファイルを作成し、これらのマッピング ファイルからエンティティを生成しようとしています。(これが好ましい方法ではないことはわかっていますが、これが私がやろうとしている方法です。私には理由があります。)

私は安らかなモジュールを構成しており、これがこのモジュールの Doctrine 構成です。

// Doctrine config
    'doctrine' => array(
        'driver' => array(
            'Restful_driver' => array(
                'class' => 'Doctrine\ORM\Mapping\Driver\AnnotationDriver',
                'cache' => 'array',
                'paths' => array(__DIR__ . '/../src/Restful/Entities')
            ),
            'orm_default' => array(
                'drivers' => array(
                    'Restful\Entities' => 'Restful_driver'
                )
            )
        )
    )

私は最初に実行します

doctrine orm:convert-mapping xml /to/my/dest/path --from-database --force

これにより、すべてのテーブル情報を含む xml ファイルが作成されます。この部分は正常に動作し、作成された xml を表示できます。次に実行してみます

doctrine orm:generate-entities /to/my/dest/path --generate-annotations 
--generate-methods

エラーは発生しませんが、結果も得られません。前のコマンドの出力は次のとおりです。

No Metadata Classes to process.

私は周りを読んでみましたが、私の問題を本当に解決する記事は見つかりませんでした. ほとんどの人は、注釈/マッピングが正しく構成されていないことについて何か言います。ただし、コントローラーを介してエンティティマネージャーをダンプできます。

var_dump($this->getServiceLocator()->get('doctrine.entitymanager.orm_default'));

これを取得して xml マッピングからエンティティを生成するにはどうすればよいですか? どんな助けでも大歓迎です。

4

3 に答える 3

5

YAML ファイルで同様の問題が発生し、解決策をここに投稿しました。これはxmlファイルでも機能すると確信しています。追加してみてください

$driverImpl = new \Doctrine\ORM\Mapping\Driver\XmlDriver(array("YOUR_PATH_TO_XML_FILES"));
/* @var $em \Doctrine\ORM\EntityManager */
$em = $application->getServiceManager()->get('doctrine.entitymanager.orm_default');
$em->getConfiguration()->setMetadataDriverImpl($driverImpl);

doctrine-module.php に。

于 2013-02-09T11:31:47.090 に答える
0

ベンダー/ビンでdoctrine-moduleスクリプトを使用してみましたか?アプリの構成を読み取るために、すべてがすでに設定されている必要があります。

./doctrine-module orm:generate-entities ~/doctrine-entities
于 2012-11-12T22:39:16.947 に答える
0

この「エラー」は、Annotation Driver を使用して生成したために発生しました。このドライバーは、現在存在するエンティティを使用し、xml を調べません。XML からエンティティを作成する場合は、ドクトリン構成セクションの XML ドライバーで必要なパスを DI に送信する必要があります。

別の zf2 doctrine モジュールを使用しており、私の DI 構成には別の形式があるため、DI の例を適切に送信できません。

于 2013-01-23T12:11:15.403 に答える