与教义OneToMany / ManyToOne的映射

时间:2015-12-15 17:59:21

标签: php symfony doctrine mapping one-to-many

我试图解决symfony给我带来的学说中的映射

的问题

我有这两个文件: 图库和图像,其中图像对应于图库和图库有很多图像(简单,没有?)

我按照一些指南设置我的第一次映射学说,这是我的结果: 的 Gallery.php

/**
 * @ORM\OneToMany(targetEntity="Image", mappedBy="gallery")
 */
private $images;

public function __construct()
{
    $this->images = new \Doctrine\Common\Collections\ArrayCollection();
}

public function addImages(\multimediaBundle\Entity\Image $images)
{
    $this->images[] = $images;
}

public function getImages()
{
    return $this->images;
}

Images.php

/**
 * @ORM\ManyToOne(targetEntity="Gallery", inversedBy="Image")
 * @ORM\JoinColumn(name="gallery_id", referencedColumnName="id",onDelete="CASCADE")
 * @return integer
 */
private $gallery;

public function setGallery(\multimediaBundle\Entity\Gallery $gallery)
{
    $this->gallery = $gallery;
}

public function getGallery()
{
    return $this->gallery;
}

Symfony给了我2个错误:

multimediaBundle \实体\画廊 映射错误 映射的multimediaBundle \ Entity \ Gallery#images和multimediaBundle \ Entity \ Image#gallery彼此不一致。

multimediaBundle \实体\图片 映射错误 关联multimediaBundle \ Entity \ Image#gallery是指不存在的反面字段multimediaBundle \ Entity \ Gallery#Image。

我真的不知道这个结构有多糟糕,因为在删除图库时级联删除效果很好,你是否有人对这个映射错误有任何线索?

提前致谢

1 个答案:

答案 0 :(得分:1)

Gallery.php

/**
 * @ORM\ManyToOne(targetEntity="Gallery", inversedBy="images")
 * @ORM\JoinColumn(name="gallery_id", referencedColumnName="id")
 */
private $gallery;

Images.php

inversedBy="Image"

你这里有一个拼写错误(?)inversedBy="images"

由{{1}}

取代