Places.yml
manyToOne:
excursions:
targetEntity: Excursions
inversedBy: places
inverse: true
cascade: ["ALL"]
nullable: false
joinColumn:
name: idx
referencedColumnName: place_id
Excursions.yml
oneToOne:
places:
targetEntity: Places
mappedBy: excursions
エクスカーションには1つのplace_idがあります。したがって、$exccursion->getPlaces()
1行のみを返します。
さて、Places
テーブルに値を挿入しようとすると、Doctrine2は言いますNot null violation: 7 ERROR: null value in column "idx" violates not-null constraint
なぜこれが起こっているのか分かりません。削除してmanyToOne
から挿入すると機能します。しかし、今回getPlaces()
は機能していません。
アップデート
問題は、データベースに対してmappedByを使用することです。私はこれだけをすべきです:
Places.yml
manyToOne:
--remove--
Excursions.yml
oneToOne:
places:
targetEntity: Places
joinColumn:
name: place_id
referencedColumnName: idx
これで問題は解決します。しかし、私はランダムに試して/プレイすることでこれを見つけました。だから、私は理由がわかりません:)誰もが私を喜ばexplain
せることを知っています。