Featured image of post Bundle以外の場所にDoctrineのEntityを配置する

Bundle以外の場所にDoctrineのEntityを配置する

Twitter ツイート Hatena Bookmark ブックマーク

Symfony2を使っていて、どうしてもBundleではないところにEntityを置きたい場合がでてきます。
昔はそんなこと出来ないと勝手に思い込んでいましたが、できるんですよね

設定方法

config.ymlのdoctrine.ormの設定で、簡単に設定できます。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
orm:
    auto_generate_proxy_classes: "%kernel.debug%"
    naming_strategy: doctrine.orm.naming_strategy.underscore
    auto_mapping: true
    mappings:
        hoge:
            is_bundle: false
            alias: Hoge
            type: annotation
            dir: %kernel.root_dir%/../src/Hoge/Entity
            prefix: Hoge\Entity

これだけです。

Controllerでリポジトリを取得してみる。

aliasHogeと指定したので、Hogeのあとにsrc/Hoge/Entityの中に作ったエンティティ名を指定すれば、リポジトリが取得できます。

1
$this->getDoctrine()->getRepository('Hoge:Fuga');

最後に

他にも様々設定ができるので、公式のドキュメントを確認してみることをおすすめします。

DoctrineBundle Configuration (“doctrine”)

comments powered by Disqus
Built with Hugo
テーマ StackJimmy によって設計されています。