PartKeepr\DoctrineReflectionBundle\Filter\AdvancedSearchFilter::addJoins PHP Method

addJoins() private method

Adds all required joins to the queryBuilder.
private addJoins ( Doctrine\ORM\QueryBuilder $queryBuilder, PartKeepr\DoctrineReflectionBundle\Filter\AssociationPropertyInterface $filter )
$queryBuilder Doctrine\ORM\QueryBuilder
$filter PartKeepr\DoctrineReflectionBundle\Filter\AssociationPropertyInterface
    private function addJoins(QueryBuilder $queryBuilder, AssociationPropertyInterface $filter)
    {
        if (in_array($filter->getAssociation(), $this->joins)) {
            // Association already added, return
            return;
        }
        $associations = explode('.', $filter->getAssociation());
        $fullAssociation = 'o';
        foreach ($associations as $key => $association) {
            if (isset($associations[$key - 1])) {
                $parent = $associations[$key - 1];
            } else {
                $parent = 'o';
            }
            $fullAssociation .= '.' . $association;
            $alias = $this->getAlias($fullAssociation);
            $queryBuilder->join($parent . '.' . $association, $alias);
        }
        $this->joins[] = $filter->getAssociation();
    }