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

Was this example useful?
0
                                                    /**
     * @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);
    }
                                            
Was this example useful?
0
                                                    /**
     * @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())
            );
    }