Sulu\Component\Rest\ListBuilder\Doctrine\DoctrineListBuilder::createQueryBuilder PHP Method

createQueryBuilder() protected method

Creates Querybuilder.
protected createQueryBuilder ( array | null $joins = null ) : Doctrine\ORM\QueryBuilder
$joins array | null Define which joins should be made
return Doctrine\ORM\QueryBuilder
    protected function createQueryBuilder($joins = null)
    {
        $this->queryBuilder = $this->em->createQueryBuilder()->from($this->entityName, $this->entityName);
        $this->assignJoins($this->queryBuilder, $joins);
        // set expressions
        if (!empty($this->expressions)) {
            foreach ($this->expressions as $expression) {
                $this->queryBuilder->andWhere('(' . $expression->getStatement($this->queryBuilder) . ')');
            }
        }
        $this->assignGroupBy($this->queryBuilder);
        if ($this->search !== null) {
            $searchParts = [];
            foreach ($this->searchFields as $searchField) {
                $searchParts[] = $searchField->getSearch();
            }
            $this->queryBuilder->andWhere('(' . implode(' OR ', $searchParts) . ')');
            $this->queryBuilder->setParameter('search', '%' . str_replace('*', '%', $this->search) . '%');
        }
        return $this->queryBuilder;
    }