Я получаю сообщение об ошибке при попытке проверить ограничение:
Аргумент 1, переданный Symfony \ Component \ Validator \ ConstraintViolationList :: add () должен реализовать интерфейс Symfony \ Component \ Validator \ ConstraintViolationInterface, строказадано
Сущность здесь:
namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
/**
* @ORM\Entity(repositoryClass="App\Repository\ProjectRepository")
* @UniqueEntity("name",message="This name is already in use.")
*/
class Project
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="string", length=255, unique=true)
*/
private $name;
public function getName(): ?string
{
return $this->name;
}
public function setName(string $name): self
{
$this->name = $name;
return $this;
}
....
}
use Symfony\Component\Validator\Validator\ValidatorInterface;
use App\Entity\Project;
class ApiService
{
/** @var EntityManagerInterface $em */
private $em;
private $token_storage;
private $user;
/**
* SampleService constructor.
* @param EntityManagerInterface $em
*/
public function __construct(EntityManagerInterface $em, TokenStorageInterface $token_storage, ValidatorInterface $validator)
{
$this->em = $em;
$this->token_storage = $token_storage;
$this->validator = $validator;
$this->user = null !== $this->token_storage->getToken() ? $this->token_storage->getToken()->getUser() : null;
}
public function createObject(array $objectFields = []): array
{
$em = $this->em;
$validator = $this->validator;
$object = new Project();
$object->setName("ABC123");
$formErrors = $validator->validate($object);// Error is here
}
}
Аргумент 1, переданный Symfony \ Component \ Validator \ ConstraintViolationList :: add (), должен реализовывать интерфейс Symfony \ Component \ Validator \ ConstraintViolationInterface, stringучитывая