eZ\Publish\Core\Search\Legacy\Content\Location\Gateway\CriterionHandler\Location\IsMainLocation::handle PHP Метод

handle() публичный Метод

accept() must be called before calling this method.
public handle ( CriteriaConverter $converter, eZ\Publish\Core\Persistence\Database\SelectQuery $query, eZ\Publish\API\Repository\Values\Content\Query\Criterion $criterion, array $languageSettings ) : eZ\Publish\Core\Persistence\Database\Expression
$converter eZ\Publish\Core\Search\Legacy\Content\Common\Gateway\CriteriaConverter
$query eZ\Publish\Core\Persistence\Database\SelectQuery
$criterion eZ\Publish\API\Repository\Values\Content\Query\Criterion
$languageSettings array
Результат eZ\Publish\Core\Persistence\Database\Expression
    public function handle(CriteriaConverter $converter, SelectQuery $query, Criterion $criterion, array $languageSettings)
    {
        $idColumn = $this->dbHandler->quoteColumn('node_id', 'ezcontentobject_tree');
        $mainIdColumn = $this->dbHandler->quoteColumn('main_node_id', 'ezcontentobject_tree');
        switch ($criterion->value[0]) {
            case Criterion\Location\IsMainLocation::MAIN:
                return $query->expr->eq($idColumn, $mainIdColumn);
            case Criterion\Location\IsMainLocation::NOT_MAIN:
                return $query->expr->neq($idColumn, $mainIdColumn);
            default:
                throw new RuntimeException("Unknown value '{$criterion->value[0]}' for IsMainLocation criterion handler.");
        }
    }
IsMainLocation