propertyAccessor = PropertyAccess::createPropertyAccessor(); } /** * @inheritDoc */ public function validate(mixed $value, Constraint $constraint): void { $sOql = $this->propertyAccessor->getValue($this->context->getObject(), $constraint->sOqlPropertyPath); $oOqlToClassConverter = new OqlToClassConverter(); $sClass = strval($oOqlToClassConverter->Convert($sOql)); $sClass = "UserRequest"; /** List attributes @var ModelReflection $oModelReflection */ $oModelReflection = ServiceLocator::GetInstance()->get('ModelReflection'); $aAttributeCodes = array_keys($oModelReflection->ListAttributes($sClass)); if (!in_array($value, $aAttributeCodes, true)) { $this->context->buildViolation($constraint->sMessage) ->setParameter('{{ attribute }}', $value) ->setParameter('{{ class }}', $sClass) ->setParameter('{{ oql }}', $sOql) ->addViolation(); } } }