Neos\ContentRepository\Domain\Repository\NodeDataRepository::addDimensionJoinConstraintsToQueryBuilder PHP Метод

addDimensionJoinConstraintsToQueryBuilder() защищенный Метод

If $dimensions is not empty, adds join constraints to the given $queryBuilder limiting the query result to matching hits.
protected addDimensionJoinConstraintsToQueryBuilder ( Doctrine\ORM\QueryBuilder $queryBuilder, array $dimensions ) : void
$queryBuilder Doctrine\ORM\QueryBuilder
$dimensions array
Результат void
    protected function addDimensionJoinConstraintsToQueryBuilder(QueryBuilder $queryBuilder, array $dimensions)
    {
        $count = 0;
        foreach ($dimensions as $dimensionName => $dimensionValues) {
            $dimensionAlias = 'd' . $count;
            $queryBuilder->andWhere('EXISTS (SELECT ' . $dimensionAlias . ' FROM Neos\\ContentRepository\\Domain\\Model\\NodeDimension ' . $dimensionAlias . ' WHERE ' . $dimensionAlias . '.nodeData = n AND ' . $dimensionAlias . '.name = \'' . $dimensionName . '\' AND ' . $dimensionAlias . '.value IN (:' . $dimensionAlias . ')) ' . 'OR NOT EXISTS (SELECT ' . $dimensionAlias . '_c FROM Neos\\ContentRepository\\Domain\\Model\\NodeDimension ' . $dimensionAlias . '_c WHERE ' . $dimensionAlias . '_c.nodeData = n AND ' . $dimensionAlias . '_c.name = \'' . $dimensionName . '\')');
            $queryBuilder->setParameter($dimensionAlias, $dimensionValues);
            $count++;
        }
    }