ActionRepository.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <?php
  2. namespace WorkflowBundle\Repository;
  3. use \Doctrine\ORM\EntityRepository;
  4. class ActionRepository extends EntityRepository
  5. {
  6. /**
  7. * @param string $eventName
  8. * @param string $objectClass
  9. *
  10. * @return array
  11. */
  12. public function findAllByEventAndObjectClass($eventName, $objectClass)
  13. {
  14. $qb = $this->createQueryBuilder('Action')
  15. ->andWhere('Action.event LIKE :eventName')->setParameter('eventName', "%{$eventName}%")
  16. ->andWhere('Action.objectClass = :objectClass')->setParameter('objectClass', $objectClass)
  17. ;
  18. return $qb->getQuery()->getResult();
  19. }
  20. /**
  21. * @param string $eventName
  22. * @param string $workflowName
  23. * @param string $eventReference
  24. * @param string $objectClass
  25. *
  26. * @return array
  27. */
  28. public function findAllByEventAndWorkflowName($eventName, $workflowName, $eventReference, $objectClass = null)
  29. {
  30. $qb = $this->createQueryBuilder('Action')
  31. ->andWhere('Action.event LIKE :eventName')->setParameter('eventName', "%{$eventName}%")
  32. ->andWhere('Action.workflowName = :workflowName')->setParameter('workflowName', $workflowName)
  33. ->andWhere('Action.eventReference = :eventReference')->setParameter('eventReference', $eventReference)
  34. ;
  35. if ($objectClass) {
  36. $qb->andWhere('Action.objectClass = :objectClass')->setParameter('objectClass', $objectClass);
  37. }
  38. return $qb->getQuery()->getResult();
  39. }
  40. }