Advertisement
Guest User

Untitled

a guest
Jun 25th, 2019
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.73 KB | None | 0 0
  1. namespace AppBundleRepository;
  2. use DoctrineORMEntityRepository;
  3. class UserRepository extends EntityRepository
  4. {
  5. public function findByRole($role)
  6. {
  7. $qb = $this->_em->createQueryBuilder();
  8. $qb->select('u')
  9. ->from($this->_entityName, 'u')
  10. ->where('u.roles LIKE :roles')
  11. ->setParameter('roles', '%"'.$role.'"%');
  12.  
  13. return $qb->getQuery()->getResult();
  14. }
  15. }
  16.  
  17. WHERE
  18. p0_.roles::text LIKE '%ROLE_EMPLOYER%'
  19.  
  20. // Example - $qb->expr()->like('u.firstname', $qb->expr()->literal('Gui%'))
  21. public function like($x, $y); // Returns ExprComparison instance
  22.  
  23. public function findByRole($role) {
  24. $qb = $this->getEntityManager()->createQueryBuilder();
  25. $qb->select('u')
  26. ->from($this->getEntityName(), 'u')
  27. ->where("u.roles LIKE '%$role%'")
  28. ;
  29.  
  30. return $qb->getQuery()->getResult();
  31. }
  32.  
  33. $qb = $this->_em->createQueryBuilder();
  34. $qb->select('u')
  35. ->from($this->_entityName, 'u')
  36. ->where('u.roles LIKE :roles')
  37. ->setParameter('roles', ''%'.$role.'%'');
  38.  
  39. return $qb->getQuery()->getResult();
  40.  
  41. $ composer require "boldtrn/jsonb-bundle
  42.  
  43. doctrine:
  44. dbal:
  45. types:
  46. jsonb: BoldtrnJsonbBundleTypesJsonbArrayType
  47. mapping_types:
  48. jsonb: jsonb
  49. orm:
  50. dql:
  51. string_functions:
  52. JSONB_AG: BoldtrnJsonbBundleQueryJsonbAtGreater
  53. JSONB_HGG: BoldtrnJsonbBundleQueryJsonbHashGreaterGreater
  54. JSONB_EX: BoldtrnJsonbBundleQueryJsonbExistence
  55.  
  56. $query = $this->getEntityManager()->createQuery("SELECT u FROM AppBundle:User u WHERE JSONB_HGG(u.roles , '{}') LIKE '%EMPLOYER%' ");
  57. $users = $query->getResult();
  58. return $users;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement