diff --git a/src/Model/Entity/EntityPersister.php b/src/Model/Entity/EntityPersister.php index c82bc40..784f85f 100644 --- a/src/Model/Entity/EntityPersister.php +++ b/src/Model/Entity/EntityPersister.php @@ -44,8 +44,9 @@ public function __construct(EntityManager $entityManager, ValidatorInterface $va /** * @param Element $element + * @param callable|null $onBeforeValidation */ - public function update(Element $element) + public function update(Element $element, callable $onBeforeValidation = null) { $key = $element->getEntityHash(); $container = $this->entityElementContainers[$key] ?? null; @@ -60,6 +61,14 @@ public function update(Element $element) $container->addElement($element); $entity = $container->getEntity(); + + if (is_callable($onBeforeValidation)) { + $message = $onBeforeValidation($entity); + if ($message) { + $element->setError(3, $message); + } + } + $property = $element->getProperty(); $value = $element->getValue();