【问题标题】:mappings with doctrine OneToMany/ManyToOne具有原则 OneToMany/ManyToOne 的映射
【发布时间】:2016-03-21 15:49:19
【问题描述】:

我正在尝试解决 symfony 给我的学说映射问题

我得到了这两个文件: Gallery 和 Image 其中一个 Image 对应于一个画廊,一个画廊有许多图像(简单地说,不是吗?)

我按照一些指南设置了我的第一个学说映射,这是我的结果: 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 个错误:

多媒体束\实体\画廊 映射错误 mediaBundle\Entity\Gallery#images 和 mediaBundle\Entity\Image#gallery 的映射不一致。

多媒体束\实体\图像 映射错误 关联的multimediaBundle\Entity\Image#gallery指的是不存在的反边字段multimediaBundle\Entity\Gallery#Image。

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

提前致谢

【问题讨论】:

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


    【解决方案1】:

    图库.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"

    【讨论】:

    • 完全正确,感谢您的帮助,发生这种情况是因为我只是复制而我不知道我在复制和替换什么,我不得不更多地关注所有者和画廊,非常感谢 scoolnico,真的
    猜你喜欢
    • 1970-01-01
    • 2019-02-24
    • 1970-01-01
    • 2015-02-13
    • 2020-09-14
    • 1970-01-01
    • 1970-01-01
    • 2018-02-02
    • 1970-01-01
    相关资源
    最近更新 更多