33namespace Doctrine \Bundle \PHPCRBundle \Form \ChoiceList ;
44
55use Doctrine \Common \Persistence \ObjectManager ;
6+ use Doctrine \ODM \PHPCR \DocumentManager ;
67use Doctrine \ODM \PHPCR \Query \Builder \QueryBuilder ;
78use Symfony \Bridge \Doctrine \Form \ChoiceList \EntityLoaderInterface ;
89use Symfony \Component \Form \Exception \FormException ;
@@ -32,10 +33,10 @@ class PhpcrOdmQueryBuilderLoader implements EntityLoaderInterface
3233 * Construct a PHPCR-ODM Query Builder Loader
3334 *
3435 * @param QueryBuilder|\Closure $queryBuilder
35- * @param ObjectManager $manager
36+ * @param DocumentManager $manager
3637 * @param string $class
3738 */
38- public function __construct ($ queryBuilder , ObjectManager $ manager = null , $ class = null )
39+ public function __construct ($ queryBuilder , DocumentManager $ manager = null , $ class = null )
3940 {
4041 // If a query builder was passed, it must be a closure or QueryBuilder
4142 // instance
@@ -51,6 +52,8 @@ public function __construct($queryBuilder, ObjectManager $manager = null, $class
5152 }
5253 }
5354
55+ $ this ->manager = $ manager ;
56+
5457 $ this ->queryBuilder = $ queryBuilder ;
5558 }
5659
@@ -77,13 +80,20 @@ public function getEntities()
7780 */
7881 public function getEntitiesByIds ($ identifier , array $ values )
7982 {
83+ return $ this ->manager ->findMany (null , $ values );
84+
85+ /*
86+ * TODO: this query does not work. should we still use the query builder in this case?
87+ * It seems the query builder does not properly translate the query for field 'id' to 'jcr:path' property.
88+
8089 $qb = clone $this->queryBuilder;
8190 $alias = $qb->getPrimaryAlias();
8291 foreach ($values as $val) {
8392 $qb->orWhere()->eq()->field($alias.'.'.$identifier)->literal($val);
8493 }
8594
8695 return $this->getResult($qb);
96+ */
8797 }
8898
8999 /**
0 commit comments