Programming Language PHP
Namespace Oro\Component\DoctrineUtils\ORM
Class QueryBuilderUtil
Method/Function applyOptimizedIn
Total Examples 2
2 code examples of PHP Oro\Component\DoctrineUtils\ORM\QueryBuilderUtil::applyOptimizedIn extracted from open source projects
/**
* @param int[] $roleIds
*
* @return int[]
*/
protected function getUserOwnerIdsByRoles(array $roleIds): array
{
if (!$roleIds) {
return [];
}
$qb = $this->registry->getRepository('OroUserBundle:User')
->createQueryBuilder('u')
->select('DISTINCT(u.id)')
->join('u.userRoles', 'r');
QueryBuilderUtil::applyOptimizedIn($qb, 'r.id', $roleIds);
$result = array_map('current', $qb->getQuery()->getResult());
if (empty($result)) {
$result = [0];
}
return $result;
}
public function getList(): array
{
$businessUnitRepo = $this->getBusinessUnitRepo();
$qb = $businessUnitRepo->getQueryBuilder();
$qb
->select('businessUnit.id')
->addSelect('o.id AS owner_id')
->leftJoin('businessUnit.owner', 'o')
->orderBy('businessUnit.id', 'ASC');
$this->addBusinessUnitName($qb);
QueryBuilderUtil::applyOptimizedIn($qb, 'businessUnit.id', $this->getBusinessUnitIds());
return $this->aclHelper->apply($qb)->getArrayResult();
}