Handle cases when there are multiple EntityWorkflows associated with one entity

This commit is contained in:
2024-07-15 18:58:08 +02:00
parent 31f842471a
commit 9e92ede16f
9 changed files with 31 additions and 25 deletions

View File

@@ -99,7 +99,10 @@ class EntityWorkflowRepository implements ObjectRepository
return $this->repository->findAll();
}
public function findByRelatedEntity($entityClass, $relatedEntityId): ?EntityWorkflow
/**
* @return list<EntityWorkflow>
*/
public function findByRelatedEntity($entityClass, $relatedEntityId): array
{
$qb = $this->repository->createQueryBuilder('w');

View File

@@ -52,5 +52,8 @@ interface EntityWorkflowHandlerInterface
public function supportsFreeze(EntityWorkflow $entityWorkflow, array $options = []): bool;
public function findByRelatedEntity(object $object): ?EntityWorkflow;
/**
* @return list<EntityWorkflow>
*/
public function findByRelatedEntity(object $object): array;
}

View File

@@ -38,12 +38,17 @@ class EntityWorkflowManager
return $this->registry->all($entityWorkflow);
}
public function findByRelatedEntity(object $object): ?EntityWorkflow
/**
* @return list<EntityWorkflow>
*/
public function findByRelatedEntity(object $object): array
{
foreach ($this->handlers as $handler) {
return $handler->findByRelatedEntity($object);
if ([] !== $workflows = $handler->findByRelatedEntity($object)) {
return $workflows;
}
}
return null;
return [];
}
}