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でリポジトリを取得してみる。
alias
にHoge
と指定したので、Hogeのあとにsrc/Hoge/Entity
の中に作ったエンティティ名を指定すれば、リポジトリが取得できます。
1
|
$this->getDoctrine()->getRepository('Hoge:Fuga');
|
最後に
他にも様々設定ができるので、公式のドキュメントを確認してみることをおすすめします。
DoctrineBundle Configuration (“doctrine”)