mappedBy 永远不是教义关系的拥有方。
ManyToOne 始终是拥有方和持有 JoinColumn 定义的一方
您还可以添加级联持久化,以便在持久化项目并刷新时自动存储您的照片实体。
此外,添加 fetch EAGER 选项以自动加载带有项目的图像。
如下实现这些添加 this use 语句:
use Doctrine/Common/Collections/Collection
将属性名称更改为照片并更改注释:
物品(拥有方)
/**
* @var \Doctrine\Common\Collections\Collection
*
* @ORM\OneToMany(targetEntity="\BX\AppBundle\Entity\Photo", mappedBy="item", cascade={"persist","remove"}, fetch="EAGER")
*/
protected $photos;
public function getPhotos()
{
return $this->photos;
}
public function addPhoto(PhotoInterface $photo)
{
if (!$this->photos->contains($photo)) {
$this->photos->add($photo);
}
return $this;
}
public function setPhotos(Collection $photos)
{
$this->photos = $photos;
return $this;
}
照片(反面)
/**
* @ManyToOne(targetEntity=""\BX\AppBundle\Entity\Item" inversedBy="photos")
* @JoinColumn(name="item", referencedColumnName="id_item")
*/
protected $item;