本文整理汇总了PHP中Doctrine\ORM\Query::getFirstResult方法的典型用法代码示例。如果您正苦于以下问题:PHP Query::getFirstResult方法的具体用法?PHP Query::getFirstResult怎么用?PHP Query::getFirstResult使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Doctrine\ORM\Query
的用法示例。
在下文中一共展示了Query::getFirstResult方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getIterator
/**
* {@inheritdoc}
*/
public function getIterator()
{
$offset = $this->query->getFirstResult();
$length = $this->query->getMaxResults();
if ($this->fetchJoinCollection) {
$subQuery = $this->cloneQuery($this->query);
$subQuery->setHint(Query::HINT_CUSTOM_TREE_WALKERS, array('Pagerfanta\\Adapter\\DoctrineORM\\LimitSubqueryWalker'))->setFirstResult($offset)->setMaxResults($length);
$ids = array_map('current', $subQuery->getScalarResult());
$whereInQuery = $this->cloneQuery($this->query);
// don't do this for an empty id array
if (count($ids) > 0) {
$namespace = 'pg_';
$whereInQuery->setHint(Query::HINT_CUSTOM_TREE_WALKERS, array('Pagerfanta\\Adapter\\DoctrineORM\\WhereInWalker'));
$whereInQuery->setHint('id.count', count($ids));
$whereInQuery->setHint('pg.ns', $namespace);
$whereInQuery->setFirstResult(null)->setMaxResults(null);
foreach ($ids as $i => $id) {
$i++;
$whereInQuery->setParameter("{$namespace}_{$i}", $id);
}
}
return new \ArrayIterator($whereInQuery->getResult($this->query->getHydrationMode()));
}
$result = $this->cloneQuery($this->query)->setMaxResults($length)->setFirstResult($offset)->getResult($this->query->getHydrationMode());
return new \ArrayIterator($result);
}
示例2: __construct
public function __construct(DoctrineOrmPaginator $paginator)
{
$this->paginator = $paginator;
$this->query = $paginator->getQuery();
$this->firstResult = $this->query->getFirstResult();
$this->maxResults = $this->query->getMaxResults();
$this->totalItems = count($paginator);
}
示例3: getIterator
/**
* {@inheritdoc}
*/
public function getIterator()
{
$offset = $this->query->getFirstResult();
$length = $this->query->getMaxResults();
if ($this->fetchJoinCollection) {
$subQuery = $this->cloneQuery($this->query);
$subQuery->setHint(Query::HINT_CUSTOM_TREE_WALKERS, array('Doctrine\\ORM\\Tools\\Pagination\\LimitSubqueryWalker'))->setFirstResult($offset)->setMaxResults($length);
$ids = array_map('current', $subQuery->getScalarResult());
$whereInQuery = $this->cloneQuery($this->query);
// don't do this for an empty id array
if (count($ids) > 0) {
$namespace = WhereInWalker::PAGINATOR_ID_ALIAS;
$whereInQuery->setHint(Query::HINT_CUSTOM_TREE_WALKERS, array('Doctrine\\ORM\\Tools\\Pagination\\WhereInWalker'));
$whereInQuery->setHint(WhereInWalker::HINT_PAGINATOR_ID_COUNT, count($ids));
$whereInQuery->setFirstResult(null)->setMaxResults(null);
foreach ($ids as $i => $id) {
$i++;
$whereInQuery->setParameter("{$namespace}_{$i}", $id);
}
}
$result = $whereInQuery->getResult($this->query->getHydrationMode());
} else {
$result = $this->cloneQuery($this->query)->setMaxResults($length)->setFirstResult($offset)->getResult($this->query->getHydrationMode());
}
return new \ArrayIterator($result);
}
示例4: getResult
public function getResult()
{
$offset = $this->query->getFirstResult();
$length = $this->query->getMaxResults();
if ($this->fetchJoinCollection) {
$subQuery = $this->cloneQuery($this->query);
if ($this->useOutputWalker($subQuery)) {
$subQuery->setHint(Query::HINT_CUSTOM_OUTPUT_WALKER, 'Doctrine\\ORM\\Tools\\Pagination\\LimitSubqueryOutputWalker');
} else {
$this->appendTreeWalker($subQuery, 'Doctrine\\ORM\\Tools\\Pagination\\LimitSubqueryWalker');
}
$subQuery->setFirstResult($offset)->setMaxResults($length);
$ids = array_map('current', $subQuery->getScalarResult());
$whereInQuery = $this->cloneQuery($this->query);
// don't do this for an empty id array
if (count($ids) == 0) {
return new \ArrayIterator(array());
}
$this->appendTreeWalker($whereInQuery, 'Doctrine\\ORM\\Tools\\Pagination\\WhereInWalker');
$whereInQuery->setHint(WhereInWalker::HINT_PAGINATOR_ID_COUNT, count($ids));
$whereInQuery->setFirstResult(null)->setMaxResults(null);
$whereInQuery->setParameter(WhereInWalker::PAGINATOR_ID_ALIAS, $ids);
$whereInQuery->setCacheable($this->query->isCacheable());
$result = $whereInQuery->getResult($this->query->getHydrationMode());
} else {
$result = $this->cloneQuery($this->query)->setMaxResults($length)->setFirstResult($offset)->setCacheable($this->query->isCacheable())->getResult($this->query->getHydrationMode());
}
return $result;
}
示例5: __construct
/**
* Class constructor.
*
* @param \Doctrine\ORM\Query
*
* @throws \RuntimeException
*/
public function __construct(Query $query)
{
if ($query->getFirstResult() !== null || $query->getMaxResults() !== null) {
throw new \RuntimeException('Cannot build a QueryCollection from a Query ' . 'with firstResult or maxResults set.');
}
$this->query = $this->cloneQuery($query);
}
示例6: __construct
/**
* Constructor.
*
* Stores various parameters that are otherwise unavailable
* because Doctrine\ORM\Query\SqlWalker keeps everything private without
* accessors.
*
* @param \Doctrine\ORM\Query $query
* @param \Doctrine\ORM\Query\ParserResult $parserResult
* @param array $queryComponents
*/
public function __construct($query, $parserResult, array $queryComponents)
{
$this->platform = $query->getEntityManager()->getConnection()->getDatabasePlatform();
$this->rsm = $parserResult->getResultSetMapping();
$this->queryComponents = $queryComponents;
// Reset limit and offset
$this->firstResult = $query->getFirstResult();
$this->maxResults = $query->getMaxResults();
$query->setFirstResult(null)->setMaxResults(null);
parent::__construct($query, $parserResult, $queryComponents);
}
示例7: getIterator
/**
* @param int|null
* @return \ArrayIterator
*/
public function getIterator($hydrationMode = NULL)
{
if ($this->iterator !== NULL) {
return $this->iterator;
}
if ($hydrationMode !== NULL) {
$this->query->setHydrationMode($hydrationMode);
}
$this->frozen = TRUE;
if ($this->fetchJoinCollection && ($this->query->getMaxResults() > 0 || $this->query->getFirstResult() > 0)) {
$this->iterator = $this->createPaginatedQuery($this->query)->getIterator();
} else {
$this->iterator = new \ArrayIterator($this->query->getResult(NULL));
}
if ($this->repository && $this->queryObject) {
$this->queryObject->queryFetched($this->repository, $this->iterator);
}
return $this->iterator;
}
示例8: getIterator
/**
* @param int $hydrationMode
* @throws QueryException
* @return \ArrayIterator
*/
public function getIterator($hydrationMode = ORM\AbstractQuery::HYDRATE_OBJECT)
{
if ($this->iterator !== NULL) {
return $this->iterator;
}
$this->query->setHydrationMode($hydrationMode);
try {
$this->frozen = TRUE;
if ($this->fetchJoinCollection && ($this->query->getMaxResults() > 0 || $this->query->getFirstResult() > 0)) {
$this->iterator = $this->createPaginatedQuery($this->query)->getIterator();
} else {
$this->iterator = new \ArrayIterator($this->query->getResult(NULL));
}
if ($this->queryObject !== NULL && $this->repository !== NULL) {
$this->queryObject->postFetch($this->repository, $this->iterator);
}
return $this->iterator;
} catch (ORMException $e) {
throw new QueryException($e, $this->query, $e->getMessage());
}
}
示例9: getQuery
/**
* @return Query
* @throws \LogicException If source of a query is not valid
*/
protected function getQuery()
{
if (null === $this->query) {
if ($this->source instanceof Query) {
$this->query = $this->cloneQuery($this->source);
} elseif ($this->source instanceof QueryBuilder) {
$this->query = $this->source->getQuery();
} else {
throw new \LogicException('Unexpected source');
}
unset($this->source);
// initialize cloned query
$this->maxResults = $this->query->getMaxResults();
if (!$this->maxResults || $this->requestedBufferSize < $this->maxResults) {
$this->query->setMaxResults($this->requestedBufferSize);
}
if (null !== $this->requestedHydrationMode) {
$this->query->setHydrationMode($this->requestedHydrationMode);
}
$this->firstResult = (int) $this->query->getFirstResult();
}
return $this->query;
}
示例10: getQueryCacheKey
/**
* @param Query $query
*
* @return string
*/
public function getQueryCacheKey(Query $query)
{
$hints = $query->getHints();
ksort($hints);
return md5($query->getDql() . var_export($query->getParameters(), true) . var_export($hints, true) . '&firstResult=' . $query->getFirstResult() . '&maxResult=' . $query->getMaxResults() . '&hydrationMode=' . $query->getHydrationMode());
}