У меня есть форма в Symfony, где есть dropzone, использующий dropzone.js для загрузки изображений, когда изображения загружаются, путь к изображению вместе с идентификатором текущего экземпляра сущности, к которой относится форма, загружаютсяImage
таблица как imageName
и listing_id
соответственно.listing_id
- это id
текущего списка, который заполняет пользователь.Так как у меня было бы несколько изображений на листинг, мне интересно, возможно ли сохранить отношение OneToMany
между объектом listing
и изображениями.
Когда пользователь нажимает «Добавить объявление», объект listing
создается с нулевыми значениями в виде черновика (кроме идентификатора), а затем изображения сбрасываются, поэтому они добавляются в БД.впоследствии.
Listing.php
/**
* @ORM\OneToMany(targetEntity="Image", mappedBy="listing", cascade={"persist"}, orphanRemoval=true)
*/
private $images;
Image.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
, так что это не желаемый результат.Мой вопрос заключается в том, могу ли я сохранить такую связь между этими двумя значениями, даже если объект изображения создается в другое время (позднее), чем в листинге.На самом деле, я получаю сообщение об ошибке, когда помещаю что-то в зону удаления, используя эти аннотации
Поскольку строки изображений вставляются в таблицу в режиме реального времени, а не при отправке формы, это может привести к ошибке при использовании такого рода связей, но я не уверен.