У меня есть следующие настройки баз данных:Doctrine2 - множественные отношения на одном поле
Tag (Integer id)
ItemTag (Integer id, Integer tag_id, Integer item_id, Integer item_type)
Artwork (Integer id)
Photo (Integer id)
Я попытался с помощью ITEM_ID поля в ItemTag и для произведения Ид и удостоверения личности с фотографией, как показано ниже
class ItemTag {
/**
* @Id @GeneratedValue
* @Column(type="integer")
*/
private $id;
/**
* @Column(type="integer")
*/
private $item_type;
/**
* @ManyToOne(targetEntity="Artwork")
* @JoinColumn(name="item_id", referencedColumnName="id")
*/
private $artwork;
/**
* @ManyToOne(targetEntity="Photo")
* @JoinColumn(name="item_id", referencedColumnName="id")
*/
private $photo;
/**
* @ManyToOne(targetEntity="Tag")
*/
private $tag;
}
установка выше не приводит к ошибкам и отлично работает, когда я пытаюсь сохранить «элемент фото», однако при сохранении «элемента оформления» item_id имеет значение NULL.
Есть ли способ сохранить оба отношения в одном поле item_id?
Спасибо, мне кажется, именно то, что я искал. Однако не уверены, какие изменения необходимы. Я попытался следовать примеру, но установка следующего свойства ItemTag $ item вызывает жалобу на столбец «id», отсутствующий на Item (суперкласс), несмотря на то, что он там ... @ManyToOne (targetEntity = "Item") @JoinColumn (name = "item_id", referedColumnName = "id") – YiSh