与学说的映射 OneToMany/ManyToOne

mappings with doctrine OneToMany/ManyToOne

我正在尝试解决 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 个错误:

Class multimediaBundle\Entity\Gallery 映射错误 映射 multimediaBundle\Entity\Gallery#images 和 multimediaBundle\Entity\Image#gallery 彼此不一致。

Class multimediaBundle\Entity\Image 映射错误 关联multimediaBundle\Entity\Image#gallery 指的是反向字段multimediaBundle\Entity\Gallery#Image 不存在。

我真的不知道这个结构有多糟糕,因为级联删除在删除画廊时效果很好,你们知道这个映射错误吗?

提前致谢

Gallery.php

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

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

Images.php

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

你这里有错字 (?) inversedBy="Image"

将替换为 inversedBy="images"