Существует анкета. Заполненная анкета сохраняется в
Answer
.
Ограничил дублирование
$user
и
$question
используя
UniqueEntity
.
Есть свойство
$file
. Если оно не null, тогда нужно избежать UniqueEntity и допустить дублирование. Либо указать id
$question
на который не должно распространятся ограничение дублирования.
Как добавить такое исключение для UniqueEntity? Другие предложения?
<?php
namespace App\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
/**
* @UniqueEntity({"user", "question"});
* @ORM\Entity(repositoryClass="App\Repository\AnswerRepository")
*/
class Answer
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\User", inversedBy="answers")
* @ORM\JoinColumn(nullable=false)
*/
private $user;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Question", inversedBy="answers")
*/
private $question;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $file;
public function getId(): ?int
{
return $this->id;
}
public function getUser(): ?user
{
return $this->user;
}
public function setUser(user $user): self
{
$this->user = $user;
return $this;
}
public function getQuestion(): ?question
{
return $this->question;
}
public function setQuestion(?question $question): self
{
$this->question = $question;
return $this;
}
public function getFile()
{
return $this->file;
}
public function setFile($file): self
{
$this->file = $file;
return $this;
}
}