validateProperty() public method

Validate a single property of an object against its current value.
public validateProperty ( object $object, string $property, array | null $groups = null ) : ConstraintViolationList
$object object The object to validate
$property string The name of the property to validate
$groups array | null The validator groups to use for validating
return ConstraintViolationList
 /**
  * Validates the properties of an entity
  *
  * @param object $entity
  * @param array  $columnsInfo
  *
  * @return array
  */
 protected function validateProperties($entity, array $columnsInfo)
 {
     $errors = array();
     foreach ($columnsInfo as $columnInfo) {
         $violations = $this->validator->validateProperty($entity, $columnInfo->getPropertyPath());
         if ($violations->count()) {
             $errors[$columnInfo->getLabel()] = $this->getErrorArray($violations);
         }
     }
     return $errors;
 }
 protected function validateProperty($object, $propertyName, $groups = null)
 {
     return $this->validator->validateProperty($object, $propertyName, $groups);
 }
 /**
  * @param \Symfony\Component\HttpFoundation\Request $request
  *
  * @return \Symfony\Component\HttpFoundation\Response
  */
 public function setObjectFieldValueAction(Request $request)
 {
     $field = $request->get('field');
     $code = $request->get('code');
     $objectId = $request->get('objectId');
     $value = $request->get('value');
     $context = $request->get('context');
     $admin = $this->pool->getInstance($code);
     $admin->setRequest($request);
     // alter should be done by using a post method
     if (!$request->isXmlHttpRequest()) {
         return new JsonResponse(array('status' => 'KO', 'message' => 'Expected a XmlHttpRequest request header'));
     }
     if ($request->getMethod() != 'POST') {
         return new JsonResponse(array('status' => 'KO', 'message' => 'Expected a POST Request'));
     }
     $rootObject = $object = $admin->getObject($objectId);
     if (!$object) {
         return new JsonResponse(array('status' => 'KO', 'message' => 'Object does not exist'));
     }
     // check user permission
     if (false === $admin->isGranted('EDIT', $object)) {
         return new JsonResponse(array('status' => 'KO', 'message' => 'Invalid permissions'));
     }
     if ($context == 'list') {
         $fieldDescription = $admin->getListFieldDescription($field);
     } else {
         return new JsonResponse(array('status' => 'KO', 'message' => 'Invalid context'));
     }
     if (!$fieldDescription) {
         return new JsonResponse(array('status' => 'KO', 'message' => 'The field does not exist'));
     }
     if (!$fieldDescription->getOption('editable')) {
         return new JsonResponse(array('status' => 'KO', 'message' => 'The field cannot be edit, editable option must be set to true'));
     }
     $propertyAccessor = PropertyAccess::createPropertyAccessor();
     $propertyPath = new PropertyPath($field);
     // If property path has more than 1 element, take the last object in order to validate it
     if ($propertyPath->getLength() > 1) {
         $object = $propertyAccessor->getValue($object, $propertyPath->getParent());
         $elements = $propertyPath->getElements();
         $field = end($elements);
         $propertyPath = new PropertyPath($field);
     }
     $propertyAccessor->setValue($object, $propertyPath, '' !== $value ? $value : null);
     $violations = $this->validator->validateProperty($object, $field);
     if (count($violations)) {
         $messages = array();
         foreach ($violations as $violation) {
             $messages[] = $violation->getMessage();
         }
         return new JsonResponse(array('status' => 'KO', 'message' => implode("\n", $messages)));
     }
     $admin->update($object);
     // render the widget
     // todo : fix this, the twig environment variable is not set inside the extension ...
     $extension = $this->twig->getExtension('sonata_admin');
     $extension->initRuntime($this->twig);
     $content = $extension->renderListElement($rootObject, $fieldDescription);
     return new JsonResponse(array('status' => 'OK', 'content' => $content));
 }
 public function validateProperty($object, $propertyName, $groups = null)
 {
     return $this->wrappedValidator->validateProperty($object, $propertyName, $groups);
 }