Programming Language PHP

Namespace Oro\Component\DoctrineUtils\ORM

Class QueryBuilderUtil

Method/Function checkParameter

Total Examples 3

3 code examples of PHP Oro\Component\DoctrineUtils\ORM\QueryBuilderUtil::checkParameter extracted from open source projects

Was this example useful?
0
                                                    private function getManyToManyQueryBuilder(
        ClassMetadata $mainEntityMetadata,
        array $mainEntities,
        string $fieldName
    ): QueryBuilder {
        $mainEntityClass = $mainEntityMetadata->getName();
        $mainEntityIdField = $this->getEntityIdField($mainEntityClass);
        $assocMapping = $mainEntityMetadata->getAssociationMapping($fieldName);
        $targetEntityClass = $mainEntityMetadata->getAssociationTargetClass($fieldName);
        $targetEntityRepository = $this->doctrineHelper->getEntityRepositoryForClass($targetEntityClass);
        $qbToMany = $targetEntityRepository->createQueryBuilder('collection_item');

        QueryBuilderUtil::checkParameter($mainEntityClass);
        QueryBuilderUtil::checkParameter($mainEntityIdField);

        $qbToMany
            ->addSelect('entity.' . $mainEntityIdField)
            ->innerJoin($mainEntityClass, 'entity', Query\Expr\Join::WITH, $qbToMany->expr()->eq(1, 1))
            ->innerJoin('entity.' . $fieldName, 'entity_' . $fieldName)
            ->andWhere($qbToMany->expr()->eq('entity_' . $fieldName, 'collection_item'))
            ->andWhere($qbToMany->expr()->in('entity', ':entities'));

        if (!empty($assocMapping['orderBy'])) {
            foreach ($assocMapping['orderBy'] as $sort => $order) {
                QueryBuilderUtil::checkParameter($sort);
                QueryBuilderUtil::checkParameter($order);
                $qbToMany->addOrderBy('collection_item.' . $sort, $order);
            }
        }

        $qbToMany->setParameter(':entities', array_keys($mainEntities));

        return $qbToMany;
    }
                                            
Was this example useful?
0
                                                    private function getOneToManyQueryBuilder(
        ClassMetadata $mainEntityMetadata,
        array $mainEntities,
        string $fieldName
    ): QueryBuilder {
        $mainEntityClass = $mainEntityMetadata->getName();
        $mainEntityIdField = $this->getEntityIdField($mainEntityClass);
        $assocMapping = $mainEntityMetadata->getAssociationMapping($fieldName);
        $targetEntityClass = $mainEntityMetadata->getAssociationTargetClass($fieldName);
        $targetEntityRepository = $this->doctrineHelper->getEntityRepositoryForClass($targetEntityClass);
        $qbToMany = $targetEntityRepository->createQueryBuilder('collection_item');

        $mappedBy = $mainEntityMetadata->getAssociationMappedByTargetField($fieldName);
        QueryBuilderUtil::checkParameter($mappedBy);
        QueryBuilderUtil::checkParameter($mainEntityIdField);
        $qbToMany
            ->addSelect('collection_item_' . $mappedBy . '.' . $mainEntityIdField)
            ->innerJoin('collection_item.' . $mappedBy, 'collection_item_' . $mappedBy)
            ->andWhere($qbToMany->expr()->in('collection_item_' . $mappedBy, ':entities'));

        if (!empty($assocMapping['orderBy'])) {
            foreach ($assocMapping['orderBy'] as $sort => $order) {
                QueryBuilderUtil::checkParameter($sort);
                QueryBuilderUtil::checkParameter($order);
                $qbToMany->addOrderBy('collection_item.' . $sort, $order);
            }
        }

        $qbToMany->setParameter(':entities', array_keys($mainEntities));

        return $qbToMany;
    }
                                            
Was this example useful?
0
                                                    protected function getFieldExpr(QueryBuilder $qb, string $qbFieldName, string $qbParameterName, array $configuration): \Doctrine\ORM\Query\Expr\Base
    {
        QueryBuilderUtil::checkParameter($qbParameterName);
        $fieldExpr = $qb->expr()->eq($qbFieldName, $qbParameterName);

        $options = $configuration[Configuration::DISCOVERY_OPTIONS_KEY];
        if (!empty($options[Configuration::DISCOVERY_EMPTY_KEY])) {
            $fieldExpr = $qb->expr()->orX(
                $fieldExpr,
                $qb->expr()->eq($qbFieldName, ':emptyValue'),
                $qb->expr()->isNull($qbFieldName)
            );
            $qb->setParameter('emptyValue', '');
        }

        return $fieldExpr;
    }