ActionRepository.php 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  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')
  16. ->setParameter('eventName', "%{$eventName}%")
  17. ->andWhere('Action.objectClass LIKE :objectClass')
  18. ->setParameter('objectClass', str_replace('\\', '\\\\', $objectClass))
  19. ;
  20. return $qb->getQuery()->getResult();
  21. }
  22. /**
  23. * @param string $eventName
  24. * @param string $workflowName
  25. * @param string $eventReference
  26. * @param string $objectClass
  27. *
  28. * @return array
  29. */
  30. public function findAllByEventAndWorkflowName($eventName, $workflowName, $eventReference, $objectClass = null)
  31. {
  32. $qb = $this->createQueryBuilder('Action')
  33. ->andWhere('Action.event LIKE :eventName')
  34. ->setParameter('eventName', "%{$eventName}%")
  35. ->andWhere('Action.workflowName = :workflowName')
  36. ->setParameter('workflowName', $workflowName)
  37. ->andWhere('Action.eventReference = :eventReference')
  38. ->setParameter('eventReference', $eventReference)
  39. ;
  40. if ($objectClass) {
  41. $qb->andWhere('Action.objectClass = :objectClass')
  42. ->setParameter('objectClass', $objectClass);
  43. }
  44. return $qb->getQuery()->getResult();
  45. }
  46. /**
  47. * @param string $workflowName Nombre del workflow
  48. * @param string $event Nombre del event
  49. *
  50. * @return array
  51. */
  52. public function findByWorkflowAndEventRef($workflowName, $event)
  53. {
  54. $qb = $this->createQueryBuilder('Action')
  55. ->andWhere('Action.workflowName LIKE :workflowName')
  56. ->setParameter('workflowName', "%{$workflowName}%")
  57. ->andWhere('Action.eventReference = :eventReference')
  58. ->setParameter('eventReference', $eventReference)
  59. ;
  60. return $qb->getQuery()->getResult();
  61. }
  62. }