Symfony2およびorm.ymlファイルを使用してエンティティをデータベースにマッピングする方法A、B、Cのエンティティ間に3-ary関係を作成して、A_PrimaryKey、B_PrimaryKey、エンティティ間の関係C_PrimaryKeyこのです:Symfony2 3-ary関係
ABの多対多 AC多対多 BCの多対多
Symfony2およびorm.ymlファイルを使用してエンティティをデータベースにマッピングする方法A、B、Cのエンティティ間に3-ary関係を作成して、A_PrimaryKey、B_PrimaryKey、エンティティ間の関係C_PrimaryKeyこのです:Symfony2 3-ary関係
ABの多対多 AC多対多 BCの多対多
だから、あなたの基本的なモデルは次のようになります。
A 1:n D
B 1:n D
C 1:n D
YMLのようになりますのためにこの:
Acme\TestBundle\Entity\D:
type: entity
# ...
manyToOne:
a:
targetEntity: A
inversedBy: as
joinColumn:
name: a_id
referencedColumnName: id
b:
targetEntity: B
inversedBy: bs
joinColumn:
name: b_id
referencedColumnName: id
c:
targetEntity: C
inversedBy: cs
joinColumn:
name: c_id
referencedColumnName: id
はそれを試してみる:あなたはDについてBとCでこれを繰り返すことができ
Acme\TestBundle\Entity\A:
type: entity
# ...
oneToMany:
products:
targetEntity: D
mappedBy: d
、それは次のようになります。たぶんAとDを最初にマップしようとします。これが機能する場合は、Bを続行してください。途中でエラーが発生する可能性が高くなります。
これはphp app/consoleを実行したときの結果です。doctrine:schema:update --force:[PDOException] SQLSTATE [42000]:構文エラーまたはアクセス違反:1075不正なテーブル定義。オートコラムが1つしかなく、キーとして定義されている必要があります。 – Haritz
現在は正常です。ありがとう。このエラーは古いテーブルによるものです。 – Haritz
エンティティA、B、C間の関係が次のような場合はどうなりますか:A-B onetone A-C onetomany B-C onetomany – Haritz
他の関係と同様に、多対1 /多対多の関係を作成してみましたか?当然のことながら、この関係はサポートされていません! – Sgoettschkes
私はそれをやってみたが失敗した。どうしたらいいのか教えていただけますか?ありがとう。 – Haritz