Programming Language PHP
Namespace Oro\Component\DoctrineUtils\ORM
Class QueryBuilderUtil
Method/Function checkPath
Total Examples 2
2 code examples of PHP Oro\Component\DoctrineUtils\ORM\QueryBuilderUtil::checkPath extracted from open source projects
/**
* @inheritdoc
*/
public function visitDatasource(DatagridConfiguration $config, DatasourceInterface $datasource)
{
/** @var OrmDatasource $datasource */
$dataName = $config->offsetGetByPath('[features][entity_class_name_path]');
if (!$dataName) {
return;
}
/** @var QueryBuilder $qb */
$qb = $datasource->getQueryBuilder();
$excludedEntities = $this->featureChecker->getDisabledResourcesByType('entities');
if (!$excludedEntities) {
return;
}
QueryBuilderUtil::checkPath($dataName);
$excludedEntitiesParam = QueryBuilderUtil::generateParameterName('excluded_entities');
$qb
->andWhere($qb->expr()->notIn($dataName, sprintf(':%s', $excludedEntitiesParam)))
->setParameter($excludedEntitiesParam, $excludedEntities);
}
/**
* @inheritdoc
*/
public function walkComparison(Comparison $comparison)
{
if (!isset($this->queryAliases[0])) {
throw new QueryException('No aliases are set before invoking walkComparison().');
}
[$operator, $modifier] = array_pad(explode('/', $comparison->getOperator(), 2), 2, null);
if (!isset($this->comparisonExpressions[$operator])) {
throw new QueryException(sprintf('Unknown comparison operator "%s".', $operator));
}
$field = $this->getField($comparison->getField());
QueryBuilderUtil::checkPath($field);
$expression = $field;
if ('i' === $modifier) {
$expression = sprintf('LOWER(%s)', $expression);
} elseif ($modifier) {
throw new QueryException(sprintf(
'Unknown modifier "%s" for comparison operator "%s".',
$modifier,
$operator
));
}
return $this->comparisonExpressions[$operator]
->walkComparisonExpression(
$this,
$field,
$expression,
$this->getParameterName($comparison->getField()),
$this->walkValue($comparison->getValue())
);
}