mappingBy は教義関係の所有側ではありません。
ManyToOne は常に所有側であり、JoinColumn 定義を保持する側です
カスケード永続化を追加して、アイテムが永続化されてフラッシュされたときに Photo エンティティが自動的に保存されるようにすることもできます。
さらに、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;