本文整理汇总了PHP中Doctrine\ORM\Query::getHints方法的典型用法代码示例。如果您正苦于以下问题:PHP Query::getHints方法的具体用法?PHP Query::getHints怎么用?PHP Query::getHints使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Doctrine\ORM\Query
的用法示例。
在下文中一共展示了Query::getHints方法的9个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: take
/**
* @param int $offset
* @return \Porpaginas\Page
*/
public function take($offset, $limit)
{
if ($this->result !== null) {
return new ArrayPage(array_slice($this->result, $offset, $limit), $offset, $limit, count($this->result));
}
$query = clone $this->query;
$query->setParameters($this->query->getParameters());
foreach ($this->query->getHints() as $name => $value) {
$query->setHint($name, $value);
}
$query->setFirstResult($offset)->setMaxResults($limit);
return new ORMQueryPage(new Paginator($query, $this->fetchCollection));
}
示例2: cloneQuery
/**
* Clones the given $query and copies all used
* parameters and hints
*
* @param Query $query
* @return Query
*/
public static function cloneQuery(Query $query)
{
$clonedQuery = clone $query;
$clonedQuery->setParameters($query->getParameters());
// attach hints
foreach ($query->getHints() as $name => $hint) {
$clonedQuery->setHint($name, $hint);
}
return $clonedQuery;
}
示例3: cloneQuery
/**
* Clones a query.
*
* @param Query $query The query.
*
* @return Query The cloned query.
*/
private function cloneQuery(Query $query)
{
/* @var $cloneQuery Query */
$cloneQuery = clone $query;
$cloneQuery->setParameters(clone $query->getParameters());
foreach ($query->getHints() as $name => $value) {
$cloneQuery->setHint($name, $value);
}
return $cloneQuery;
}
示例4: __construct
/**
* @param \Doctrine\ORM\Query $query The Doctrine Query
* @param array $fields Fields to export
* @param string $dateTimeFormat
*/
public function __construct(Query $query, array $fields, $dateTimeFormat = 'r')
{
$this->query = clone $query;
$this->query->setParameters($query->getParameters());
foreach ($query->getHints() as $name => $value) {
$this->query->setHint($name, $value);
}
$this->propertyAccessor = PropertyAccess::createPropertyAccessor();
$this->propertyPaths = array();
foreach ($fields as $name => $field) {
if (is_string($name) && is_string($field)) {
$this->propertyPaths[$name] = new PropertyPath($field);
} else {
$this->propertyPaths[$field] = new PropertyPath($field);
}
}
$this->dateTimeFormat = $dateTimeFormat;
}
示例5: __construct
/**
* @param \Doctrine\ORM\Query $query The Doctrine Query
* @param array $fields Fields to export
* @param string $dateTimeFormat
*/
public function __construct(Query $query, array $fields, $dateTimeFormat = 'r')
{
$this->query = clone $query;
$this->query->setParameters($query->getParameters());
foreach ($query->getHints() as $name => $value) {
$this->query->setHint($name, $value);
}
// Note : will be deprecated in Symfony 3.0, conserved for 2.2 compatibility
// Use createPropertyAccessor() for 3.0
// @see Symfony\Component\PropertyAccess\PropertyAccess
$this->propertyAccessor = PropertyAccess::getPropertyAccessor();
$this->propertyPaths = array();
foreach ($fields as $name => $field) {
if (is_string($name) && is_string($field)) {
$this->propertyPaths[$name] = new PropertyPath($field);
} else {
$this->propertyPaths[$field] = new PropertyPath($field);
}
}
$this->dateTimeFormat = $dateTimeFormat;
}
示例6: cloneQuery
/**
* Makes full clone of the given query, including its parameters and hints
*
* @param Query $query
* @return Query
*/
protected function cloneQuery(Query $query)
{
$result = clone $query;
// clone parameters
$result->setParameters(clone $query->getParameters());
// clone hints
foreach ($query->getHints() as $name => $value) {
$result->setHint($name, $value);
}
return $result;
}
示例7: cloneQuery
/**
* Clones a Query object.
*
* @param \Doctrine\ORM\Query $query The query to clone.
*
* @return \Doctrine\ORM\Query The cloned query.
*/
private function cloneQuery(Query $query)
{
$queryClone = clone $query;
$queryClone->setParameters($query->getParameters());
foreach ($query->getHints() as $key => $value) {
$queryClone->setHint($key, $value);
}
return $queryClone;
}
示例8: 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());
}
示例9: addShareConditionToQuery
/**
* Add to query share condition
*
* @param Query $query
* @param Node|null $shareCondition
*/
protected function addShareConditionToQuery(Query $query, $shareCondition)
{
if ($shareCondition) {
$hints = $query->getHints();
if (!empty($hints[Query::HINT_CUSTOM_TREE_WALKERS])) {
$customHints = !in_array(self::ORO_ACL_WALKER, $hints[Query::HINT_CUSTOM_TREE_WALKERS]) ? array_merge($hints[Query::HINT_CUSTOM_TREE_WALKERS], [self::ORO_ACL_WALKER]) : $hints[Query::HINT_CUSTOM_TREE_WALKERS];
} else {
$customHints = [self::ORO_ACL_WALKER];
}
$query->setHint(Query::HINT_CUSTOM_TREE_WALKERS, $customHints);
$query->setHint(AclWalker::ORO_ACL_SHARE_CONDITION, $shareCondition);
}
}