Как я могу избежать создания дубликата в моей форме? - PullRequest
0 голосов
/ 07 января 2020

У меня есть форма для создания Reservation, эта форма содержит встраиваемую форму CollectionType для формы с именем ResaWeekType, соответствующей сущности с именем ResaWeek, которая является таблицей соединения следующих сущностей: Resa и Week.

В таблице ResaWeek также есть поле (поэтому у меня нет отношения ManyToMany между резервированием и неделей):

class ResaWeek
{
    /**
     * @ORM\Id()
     * @ORM\ManyToOne(targetEntity="App\Entity\Resa", inversedBy="resaWeeks")
     */
    private $resa;

    /**
     * @ORM\Id()
     * @ORM\ManyToOne(targetEntity="App\Entity\Week", inversedBy="resaWeeks")
     */
    private $week;

    /**
     * @ORM\ManyToOne(targetEntity="App\Entity\State", inversedBy="resaWeeks")
     */
    private $state;
    // {...}
}

Вот схема.

Here is the scheme.

Вот форма ReservationType:

$builder
    ->add('resaWeeks', CollectionType::class, [
        'entry_type' => ResaWeekType::class,
        'entry_options' => ['label' => false],
        'allow_add' => true,
        'allow_delete' => true,
        'by_reference' => false,
    ])
;

Итак, форма ResaWeekType вызывает EntityType для недели:

$builder
    ->add('week', EntityType::class, [
        'class' => Week::class
    ])
;

Я добавил javascripts ( на основе документации), чтобы иметь возможность удалить или добавить строку для элемента ResaWeek.

Моя проблема заключается в том, что существует возможность создать дубликат ResaWeek с тем же идентификатором (поскольку для этого вам нужно только добавьте два ResaWeek и выберите одно и то же поле недели в форме). Как я могу избежать этой ситуации?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...