/** * @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)); }
/** * @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]; $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]; 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)); }