我在 Symfony 中有一个表单,其中有一个使用 dropzone.js 上传图像的 dropzone,当上传图像时,图像路径以及表单所属实体的当前实例的 id 被上传到Image
表中imageName
和listing_id
分别。这listing_id
是id
用户正在填写的当前列表。由于每个列表我有多个图像,我想知道是否可以保持对象和图像OneToMany
之间的关系。listing
当用户单击“添加列表”时,将listing
使用空值创建对象作为草稿(除了 id),然后将图像放入其中,然后将它们添加到数据库中。
清单.php
/**
* @ORM\OneToMany(targetEntity="Image", mappedBy="listing", cascade={"persist"}, orphanRemoval=true)
*/
private $images;
图片.php
/**
* @ORM\ManyToOne(targetEntity="Listing", inversedBy="images")
* @ORM\JoinColumn(name="listing_id", referencedColumnName="id", onDelete="CASCADE")
*/
private $listing;
将图像放入时会导致错误,但如果我更改$listing
为
/**
* @ORM\Column(type="integer", nullable=true, name="listing_id")
*/
protected $listing;
它有效,但我的意图是稍后使用该listing
对象检索图像,因此这不是预期的结果。我的问题是,即使图像对象是在与列表不同的时间(稍后)创建的,我是否仍然可以在这两个值之间保持这种耦合。实际上,当我使用这些注释将某些内容放入放置区时出现错误。
由于图像行是实时插入到表中的,而不是在表单提交时,使用这种耦合时可能会导致错误,但我不确定。