Gets all defined query parameters for the query being constructed indexed by parameter index or name.
public getParameters ( ) : array | ||
return | array | The currently defined query parameters indexed by parameter index or name. |
/** * @return bool|string */ public function getTotal() { if ($this->total) { return $this->total; } $queryBuilder = $this->repository->getEm()->createQueryBuilder(); $fromParts = $this->queryBuilder->getQueryPart('from'); if ($fromParts) { foreach ($fromParts as $from) { $queryBuilder->from($from['table'], $from['alias']); } } $queryBuilder->select('COUNT(*)'); $where = $this->queryBuilder->getQueryPart('where'); if ($where) { $queryBuilder->add('where', (string) $where); } $parameters = $this->queryBuilder->getParameters(); if ($parameters) { foreach ($parameters as $key => $value) { $queryBuilder->setParameter($key, $value); } } return $this->total = $queryBuilder->execute()->fetchColumn(); }
/** * @param QueryBuilder $builder */ public static function logBuilder($builder) { $sql = $builder->getSQL(); $params = $builder->getParameters(); self::log("Running Query: " . $sql . " with params:"); self::logObject($params); }
public function testItShouldWorksWithParametersInTheOrX() { $qb = new QueryBuilder($this->connection); $qb->select('p.id')->from('posts', 'p')->setParameter('status', 'odd'); $aclFilter = new DoctrineDbalAclFilter($qb); $aclFilter->setAclSchema($this->aclSchema); $aclFilter->apply('p', 'id', 'post-', ['user-1'], 1, ['status = :status']); $this->assertEquals(['status' => 'odd', 'acl_prefix' => 'post-', 'acl_identifiers' => ['user-1'], 'acl_mask' => 1], $qb->getParameters()); }
/** * @test */ public function getParametersDelegatesToConcreteQueryBuilder() { $this->concreteQueryBuilder->getParameters()->shouldBeCalled()->willReturn(['aField' => 'aValue']); $this->subject->getParameters(); }
/** * Modify the query to count occurences of a value in a column * * @param QueryBuilder $table without prefix * @param string $uniqueColumn name * @param array $options for special behavior * @param string $tablePrefix */ public function modifyCountQuery(QueryBuilder &$query, $uniqueColumn, $options = [], $tablePrefix = 't') { $query->select('COUNT(' . $tablePrefix . '.' . $uniqueColumn . ') AS count'); // Count only unique values if (!empty($options['getUnique'])) { $selectAlso = ''; if (isset($options['selectAlso'])) { $selectAlso = ', ' . implode(', ', $options['selectAlso']); } // Modify the previous query $query->select($tablePrefix . '.' . $uniqueColumn . $selectAlso); $query->having('COUNT(*) = 1')->groupBy($tablePrefix . '.' . $uniqueColumn . $selectAlso); // Create a new query with subquery of the previous query $uniqueQuery = $this->connection->createQueryBuilder(); $uniqueQuery->select('COUNT(' . $tablePrefix . '.' . $uniqueColumn . ') AS count')->from('(' . $query->getSql() . ')', $tablePrefix); // Apply params from the previous query to the new query $uniqueQuery->setParameters($query->getParameters()); // Replace the new query with previous query $query = $uniqueQuery; } return $query; }
public function testClone() { $qb = new QueryBuilder($this->conn); $qb->select('u.id')->from('users', 'u')->where('u.id = :test'); $qb->setParameter(':test', (object) 1); $qb_clone = clone $qb; $this->assertEquals((string) $qb, (string) $qb_clone); $qb->andWhere('u.id = 1'); $this->assertFalse($qb->getQueryParts() === $qb_clone->getQueryParts()); $this->assertFalse($qb->getParameters() === $qb_clone->getParameters()); }
/** * Gets all defined query parameters for the query being constructed indexed by parameter index or name. * * @return array The currently defined query parameters indexed by parameter index or name. */ public function getParameters() { return $this->queryBuilder->getParameters(); }
/** * Gets all defined query parameters for the query being constructed indexed by parameter index or name. * * @return array The currently defined query parameters indexed by parameter index or name. */ public function getParameters() : array { return $this->concreteQueryBuilder->getParameters(); }
/** * Gets all defined query parameters for the query being constructed. * * @return array The currently defined query parameters. */ public function getParameters() { return $this->qb->getParameters(); }