diff --git a/lib/Doctrine/ORM/Persisters/Collection/ManyToManyPersister.php b/lib/Doctrine/ORM/Persisters/Collection/ManyToManyPersister.php index 176ef37ee..84d5ccfbc 100644 --- a/lib/Doctrine/ORM/Persisters/Collection/ManyToManyPersister.php +++ b/lib/Doctrine/ORM/Persisters/Collection/ManyToManyPersister.php @@ -259,10 +259,11 @@ class ManyToManyPersister extends AbstractCollectionPersister $parameters = $this->expandCriteriaParameters($criteria); foreach ($parameters as $parameter) { - list($name, $value) = $parameter; - $field = $this->quoteStrategy->getColumnName($name, $targetClass, $this->platform); - $whereClauses[] = sprintf('te.%s = ?', $field); - $params[] = $value; + [$name, $value, $operator] = $parameter; + + $field = $this->quoteStrategy->getColumnName($name, $targetClass, $this->platform); + $whereClauses[] = sprintf('te.%s %s ?', $field, $operator); + $params[] = $value; } $tableName = $this->quoteStrategy->getTableName($targetClass, $this->platform); diff --git a/lib/Doctrine/ORM/Persisters/SqlValueVisitor.php b/lib/Doctrine/ORM/Persisters/SqlValueVisitor.php index 78fd0333b..a5df126c4 100644 --- a/lib/Doctrine/ORM/Persisters/SqlValueVisitor.php +++ b/lib/Doctrine/ORM/Persisters/SqlValueVisitor.php @@ -50,9 +50,9 @@ class SqlValueVisitor extends ExpressionVisitor */ public function walkComparison(Comparison $comparison) { - $value = $this->getValueFromComparison($comparison); - $field = $comparison->getField(); - $operator = $comparison->getOperator(); + $value = $this->getValueFromComparison($comparison); + $field = $comparison->getField(); + $operator = $comparison->getOperator(); if (($operator === Comparison::EQ || $operator === Comparison::IS) && $value === null) { return; @@ -61,7 +61,7 @@ class SqlValueVisitor extends ExpressionVisitor } $this->values[] = $value; - $this->types[] = [$field, $value]; + $this->types[] = [$field, $value, $operator]; } /**