Я пытаюсь создать 3 объекта (Предмет, Согласен, Не согласен) со следующими отношениями.
- Элемент один ко многим Согласен
- Элемент один ко многимНе согласен
Но только одно (объявленное позже) из двух созданных.
Вот мои файлы .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;
}
}
Если я переключаю порядок декларации (сначала «Не согласен», а затем «Согласен», например,ниже), Item.php имеет только код «Согласен», связанный с этим временем.
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
Что не так с моим кодом?Любые комментарии будут полезны.
Пункт, согласен и не согласен - это всего лишь примеры, демонстрирующие эту проблему.В реальном проекте Согласен и Не согласен - это совершенно разные сущности.Итак, не предлагайте мне объединить их в единое целое.:)