2012-04-24 15 views
1

Symfony2とDoctrineで動作するようになっています。状況は次のとおりです。 ピアッシング情報のページ(一般情報とキャリー情報)。Symfony 2はdoctrineとの関係を多対多にフェッチする

ケア撮影は、それが適用されるのピアスは、複数のケア水揚げ

を持つことができますし、複数のピアスを持つことができます

データベースのレイアウト:今すぐ

Piercings: 
    id 
    name 
    ... 

Caretaking: 
    id 
    title 
    description 

piercing_to_caretaking 
    id 
    piercing_id 
    caretaking_id 

、私はエンティティおよび対応するクエリを作成する方法を/ Dql?あなたはYMLを使用してエンティティを定義する場合

答えて

3

:Piercing.orm.ymlで

追加:Caretaking.orm.ymlで

manyToMany: 
    caretakings: 
     targetEntity: Caretaking 
     inversedBy: piercings 
     joinTable: 
      name: piercing_caretaking 
      joinColumns: 
       caretaking: 
        referencedColumnName: id 
      inverseJoinColumns: 
       piercing: 
        referencedColumnName: id 

追加:

manyToMany: 
    piercings: 
     targetEntity: Piercing 
     mappedBy: caretakings 

が生成/更新通常の方法でエンティティ、すなわち:

app/console doctrine:schema:update --dump-sql (to check results) 
app/console doctrine:schema:update --force (to apply changes) 
あなたはピアスや介護実体を持っているとき

は、その後、あなたはこのような関連企業にアクセスすることができます。この使用して注釈を行う方法など、詳細については

$piercing->addCaretaking($caretaking); 
$caretakings = $piercing->getCaretakings(); 
... 
$piercings = $caretaking->getPiercings(); 

を、多くのサブセクション5.1.4の多くを参照してください、 DoctrineドキュメントのSection 5 Association Mappingの双方向。

+0

この回答をお寄せいただきありがとうございます。致命的な例外や存在しない機能を取得することで問題を解決しました。私はYAMLの代わりに注釈を使用していますが、あなたのソリューションを適合させるのは簡単です。 – nealio82

関連する問題