Доктрина - сопоставить уникальную запись с несколькими таблицами - PullRequest
0 голосов
/ 19 января 2019

Я хочу иметь только 1 запись в таблице изображений, но использовать ее несколько раз в других таблицах.Таблица изображений имеет уникальное ограничение «source» + «source_id».

Доктрина, кажется, не проверяет это перед сохранением, поэтому возникает ошибка: «Duplicate entry ....»

Нужно ли искать сохраненный элемент самостоятельно перед сохранением?Я надеялся, что Доктрина сделает это.

Определение таблицы изображений:

    /**
     * @ORM\Entity
     * @ORM\Table(name="ce_image", uniqueConstraints={@ORM\UniqueConstraint(name="image", columns={"source", "source_id"})})
     **/
    class Image extends Core
    {
...

Определение таблицы событий и дат (идентично):

class Date {
 .....
/**
     * @ORM\ManyToOne(targetEntity="NamesapceTo\Image", cascade={"persist", "remove"})
     * @ORM\JoinColumn(name="id_image", referencedColumnName="id", onDelete="SET NULL", nullable=true)
     * @var Image
     */
    private $image = null;
...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...