Symfony 4.3 Уникальный объект между двумя объектами не работает - PullRequest
1 голос
/ 05 февраля 2020

Я пытаюсь запретить пользователю иметь одну и ту же магию c дважды в своей коллекции.

Вот мой объект CollectionContent. Он содержит все карты, которые пользователи имеют в своей коллекции. Он связан с сущностью Коллекции и сущностью Карт.

<?php

namespace App\Entity;

use Doctrine\ORM\Mapping as ORM;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;

/**
 * @ORM\Entity(repositoryClass="App\Repository\CollectionContentRepository")
 * @UniqueEntity(
 *     fields={"cards", "fromCollection"},
 *     errorPath="cards",
 *     message="This card already exists in your collection."
 * )
 */
class CollectionContent
{
    /**
     * @ORM\Id()
     * @ORM\GeneratedValue()
     * @ORM\Column(type="integer")
     */
    private $id;

    /**
     * @ORM\Column(type="integer")
     */
    private $quantity;

    /**
     * @ORM\ManyToOne(targetEntity="App\Entity\Cards")
     * @ORM\JoinColumn(referencedColumnName="card_id")
     */
    private $cards;

    /**
     * @ORM\ManyToOne(targetEntity="App\Entity\Collections", inversedBy="collectionContents", fetch="EAGER")
     * @ORM\JoinColumn(nullable=false)
     */
    private $fromCollection;

    public function getId(): ?int
    {
        return $this->id;
    }

    public function getQuantity(): ?int
    {
        return $this->quantity;
    }

    public function setQuantity(int $quantity): self
    {
        $this->quantity = $quantity;

        return $this;
    }

    public function getCards(): ?cards
    {
        return $this->cards;
    }

    public function setCards(?cards $cards): self
    {
        $this->cards = $cards;

        return $this;
    }

    public function getFromCollection(): ?collections
    {
        return $this->fromCollection;
    }

    public function setFromCollection(?collections $fromCollection): self
    {
        $this->fromCollection = $fromCollection;

        return $this;
    }
}

Однако, когда это позволяет мне иметь одну и ту же карту в одной коллекции более одного раза. Что я сделал не так?

...