. */ namespace App\Validator\Constraints\AssemblySystem; use Symfony\Component\Validator\Constraint; use Symfony\Component\Validator\ConstraintValidator; class UniqueReferencedAssemblyValidator extends ConstraintValidator { public function validate($value, Constraint $constraint) { $assemblies = []; foreach ($value as $entry) { $referencedAssemblyId = $entry->getReferencedAssembly()?->getId(); if ($referencedAssemblyId === null) { continue; } if (isset($assemblies[$referencedAssemblyId])) { $this->context->buildViolation($constraint->message) ->atPath('referencedAssembly') ->addViolation(); return; } $assemblies[$referencedAssemblyId] = true; } } }