1
以下の関係で3つのエンティティ(Item、Agree、Disagree)を作成しようとしています。Doctrine2は「2」の1対多の関係を作成できません
- 項目1対多の
- 項目1対多は
を同意しない同意するが、2つのうち一つだけ関係(後に宣言された)が行われました。
ここは私の.ymlファイルです。
Entities\Item:
type: entity
fields:
id:
type: integer
id: true
generator:
strategy: AUTO
oneToMany:
agrees:
targetEntity: Agree
mappedBy: items
oneToMany:
disagrees:
targetEntity: Disagree
mappedBy: items
Entities\Agree:
type: entity
fields:
id:
type: integer
id: true
generator:
strategy: AUTO
manyToOne:
items:
targetEntity: Item
inversedBy: agrees
Entities\Disagree:
type: entity
fields:
id:
type: integer
id: true
generator:
strategy: AUTO
manyToOne:
items:
targetEntity: Item
inversedBy: disagrees
以下のコードItem.phpのDoctrine2により自動生成されます。ご覧のとおり、「同意」は一切含まれていません。
namespace Entities;
class Item {
private $id;
private $disagrees;
public function __construct() {
$this->disagrees = new \Doctrine\Common\Collections\ArrayCollection();
}
public function getId() {
return $this->id;
}
public function addDisagrees(\Entities\Disagree $disagrees) {
$this->disagrees[] = $disagrees;
}
public function getDisagrees() {
return $this->disagrees;
}
}
Iの宣言順序を切り替える場合は、この時点でAgree'関連コード 'Item.phpのみを有している(以下のように、最初、by'Agreeに従っ '反対します'') 。私のコードで間違って何
Entities\Item:
type: entity
fields:
id:
type: integer
id: true
generator:
strategy: AUTO
oneToMany:
disagrees:
targetEntity: Disagree
mappedBy: items
oneToMany:
agrees:
targetEntity: Agree
mappedBy: items
?コメントは参考になります。
商品とは、この商品につけられてのみ表示されます。実際のプロジェクトでは、AgreeとDisagreesはまったく異なる存在です。ですから、それらを統一されたエンティティにマージするように提案しないでください。 :)あなたが接近していた