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