From 1630ec1ebdc2e5502bb351de6438cd70d7ceeef7 Mon Sep 17 00:00:00 2001 From: Asmir Mustafic Date: Fri, 30 Jan 2015 00:24:09 +0100 Subject: [PATCH] Fixed owing-inverse side search by criteria --- .../ORM/Persisters/Entity/BasicEntityPersister.php | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/Doctrine/ORM/Persisters/Entity/BasicEntityPersister.php b/lib/Doctrine/ORM/Persisters/Entity/BasicEntityPersister.php index c5f56fc9f..9158f7b6b 100644 --- a/lib/Doctrine/ORM/Persisters/Entity/BasicEntityPersister.php +++ b/lib/Doctrine/ORM/Persisters/Entity/BasicEntityPersister.php @@ -1650,14 +1650,18 @@ class BasicEntityPersister implements EntityPersister $association = $this->class->associationMappings[$field]; // Many-To-Many requires join table check for joinColumn $columns = array(); + $class = $this->class; if ($association['type'] === ClassMetadata::MANY_TO_MANY) { if ( ! $association['isOwningSide']) { $association = $assoc; } + $joinColumns = $assoc['isOwningSide'] + ? $association['joinTable']['joinColumns'] + : $association['joinTable']['inverseJoinColumns']; - $joinTableName = $this->quoteStrategy->getJoinTableName($association, $this->class, $this->platform); - foreach ($association['joinTable']['joinColumns'] as $joinColumn) { - $columns[] = $joinTableName . '.' . $this->quoteStrategy->getJoinColumnName($joinColumn, $this->class, $this->platform); + $joinTableName = $this->quoteStrategy->getJoinTableName($association, $class, $this->platform); + foreach ($joinColumns as $joinColumn) { + $columns[] = $joinTableName . '.' . $this->quoteStrategy->getJoinColumnName($joinColumn, $class, $this->platform); } } else {