0
나는 다음과 같은 데이터베이스 설정을 가지고 :Doctrine2 - 하나 개의 필드에 여러 관계
Tag (Integer id)
ItemTag (Integer id, Integer tag_id, Integer item_id, Integer item_type)
Artwork (Integer id)
Photo (Integer id)
나는 아래
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;
}
등 아트 워크 ID와 사진이 부착 된 신분증 모두 ItemTag에 ITEM_ID 필드를 사용하여 시도
위의 설정은 "사진 항목"을 저장하려고하면 오류가 발생하지 않고 잘 작동하지만 "아트웍 항목"을 저장할 때 item_id가 NULL입니다.
두 관계를 단일 item_id 필드에 저장할 수있는 방법이 있습니까?
감사합니다. 이것은 정확하게 내가 찾고있는 것 같습니다. 그러나 db 변경이 필요한지 확실하지 않습니다. 나는 예제를 따라했으나 ItemTag $ item 속성에서 다음과 같이 설정하면 항목 (수퍼 클래스)에 누락 된 열 "id"에 대해 불만을 표시합니다. @ManyToOne (targetEntity = "Item") @JoinColumn (name = "item_id", referencedColumnName = "id") – YiSh