/** * {@inheritdoc} */ public function addIdentifiersToQuery($class, ProxyQueryInterface $queryProxy, array $idx) { $fieldNames = $this->getIdentifierFieldNames($class); $qb = $queryProxy->getQueryBuilder(); $prefix = uniqid(); $sqls = array(); foreach ($idx as $pos => $id) { $ids = explode(self::ID_SEPARATOR, $id); $ands = array(); foreach ($fieldNames as $posName => $name) { $parameterName = sprintf('field_%s_%s_%d', $prefix, $name, $pos); $ands[] = sprintf('%s.%s = :%s', $qb->getRootAlias(), $name, $parameterName); $qb->setParameter($parameterName, $ids[$posName]); } $sqls[] = implode(' AND ', $ands); } $qb->andWhere(sprintf('( %s )', implode(' OR ', $sqls))); }
/** * {@inheritdoc} */ public function addIdentifiersToQuery($class, ProxyQueryInterface $queryProxy, array $idx) { $queryBuilder = $queryProxy->getQueryBuilder(); $queryBuilder->field('_id')->in($idx); }
/** * {@inheritDoc} */ public function addIdentifiersToQuery($class, ProxyQueryInterface $queryProxy, array $idx) { /** @var $queryProxy ProxyQuery */ $qb = $queryProxy->getQueryBuilder(); $orX = $qb->andWhere()->orX(); foreach ($idx as $id) { $path = $this->getBackendId($id); $orX->same($path, $queryProxy->getAlias()); } }
public function callbackMethod(ProxyQueryInterface $proxyQuery, $alias, $field, $data) { $queryBuilder = $proxyQuery->getQueryBuilder(); $queryBuilder->andWhere()->eq()->field('a.' . $field)->literal($data['value']); return true; }