eZ\Publish\Core\Search\Legacy\Content\Common\Gateway\CriterionHandler\FieldValue\Handler\Collection::handle PHP Method

handle() public method

Generates query expression for operator and value of a Field Criterion.
public handle ( eZ\Publish\Core\Persistence\Database\SelectQuery $query, eZ\Publish\API\Repository\Values\Content\Query\Criterion $criterion, string $column ) : eZ\Publish\Core\Persistence\Database\Expression
$query eZ\Publish\Core\Persistence\Database\SelectQuery
$criterion eZ\Publish\API\Repository\Values\Content\Query\Criterion
$column string
return eZ\Publish\Core\Persistence\Database\Expression
    public function handle(SelectQuery $query, Criterion $criterion, $column)
    {
        switch ($criterion->operator) {
            case Criterion\Operator::CONTAINS:
                $quotedColumn = $this->dbHandler->quoteColumn($column);
                $value = $this->lowerCase($criterion->value);
                $filter = $query->expr->lOr(array($query->expr->eq($quotedColumn, $query->bindValue($value, null, \PDO::PARAM_STR)), $query->expr->like($quotedColumn, $query->bindValue('%' . $this->separator . $value, null, \PDO::PARAM_STR)), $query->expr->like($quotedColumn, $query->bindValue($value . $this->separator . '%', null, \PDO::PARAM_STR)), $query->expr->like($quotedColumn, $query->bindValue('%' . $this->separator . $value . $this->separator . '%', null, \PDO::PARAM_STR))));
                break;
            default:
                $filter = parent::handle($query, $criterion, $column);
        }
        return $filter;
    }