/**
  * @see BackendAdapter::findByIds
  */
 public function findByIds(FindByIdsRequest $request)
 {
     if ($request->isFulfilled()) {
         return $request;
     }
     $ids = $request->getNotFoundIds();
     $className = $request->getClassName();
     $resources = $this->classNameToResources[$className];
     $repo = $this->em->getRepository($this->{$resources}['getEntityName']());
     $rows = $repo->findBy(array('id' => $ids));
     $rows = new ArrayIterator($rows);
     return $request->foundMany($this->{$resources}['exporter']($rows));
 }
 /**
  * @see BackendAdapter::findByIds
  */
 public function findByIds(FindByIdsRequest $request)
 {
     if ($request->isFulfilled()) {
         return $request;
     }
     $ids = $request->getNotFoundIds();
     $className = $request->getClassName();
     $resources = $this->classNameToResources[$className];
     $tableName = $resources['table'];
     $ids = implode(', ', $ids);
     $rows = $this->conn->fetchAll("SELECT * FROM {$tableName} WHERE id IN ({$ids})");
     $rows = new ArrayIterator($rows);
     return $request->foundMany($this->{$resources}['exporter']($rows));
 }
Example #3
0
 /**
  * @see BackendAdapter::findByIds
  */
 public function findByIds(FindByIdsRequest $request)
 {
     if ($request->isFulfilled()) {
         return $request;
     }
     $ids = $request->getNotFoundIds();
     $className = $request->getClassName();
     $this->init();
     $resources = $this->classNameToResources[$className];
     $all = $this->json[$resources['collection']];
     $iter = new ArrayIterator(array());
     foreach ($all as $obj) {
         if (in_array($obj['id'], $ids)) {
             $iter->append($obj);
         }
     }
     $exporter = $resources['exporter'];
     return $request->foundMany($this->{$exporter}($iter));
 }
 /**
  * @see BackendAdapter::findByIds
  */
 public function findByIds(FindByIdsRequest $request)
 {
     if ($request->isFulfilled()) {
         return $request;
     }
     $ids = $request->getNotFoundIds();
     $className = $request->getClassName();
     $resources = $this->classNameToResources[$className];
     array_walk($ids, function (&$value) {
         $value = new MongoId($value);
     });
     $ret = $this->getMongo()->selectCollection($resources['collection'])->find(array('_id' => array('$in' => $ids)));
     $iter = new ArrayIterator(array());
     foreach ($ret as $doc) {
         $iter->append($doc);
     }
     $exporter = $resources['exporter'];
     return $request->foundMany($this->{$exporter}($iter));
 }
Example #5
0
 /**
  * @param FindByIdsRequest $request
  * @return FindByIdsRequest
  */
 public function findByIds(FindByIdsRequest $request)
 {
     $className = $request->getClassName();
     foreach ($request->getNotFoundIds() as $id) {
         if ($identifiable = $this->get($id, $className)) {
             $request->found($identifiable);
         }
     }
     return $request;
 }
Example #6
0
 /**
  * Finds objects via ids and class
  *
  * @param array $ids
  * @param string $className
  * @return ArrayCollection
  */
 public function findByIds(array $ids, $className)
 {
     $request = new FindByIdsRequest($ids, $className, $this->eventDispatcher);
     $request->resolve($this->getResolvers());
     $this->identityMap->addMany($request->getResult());
     return $request->getResult();
 }
Example #7
0
 /**
  * @param array $ids
  * @param $className
  * @return Identifiable[]
  */
 public function findByIds(FindByIdsRequest $request)
 {
     $identifiables = new ArrayIterator($this->adapter->findByIds($request->getNotFoundIds(), $request->getClassName()));
     return $request->foundMany($identifiables) ?: array();
 }