hydrateEntity() public method

Hydrates entity.
public hydrateEntity ( array $data ) : Nextras\Orm\Entity\IEntity
$data array
return Nextras\Orm\Entity\IEntity
Esempio n. 1
0
 protected function fetch(SqlBuilder $builder, $hasJoin, array $values)
 {
     $primaryKey = $this->targetRepository->getMapper()->getStorageReflection()->getStoragePrimaryKey()[0];
     $builder->addWhere($primaryKey, $values);
     $builder->addSelect(($hasJoin ? 'DISTINCT ' : '') . $builder->getTableName() . '.*');
     $result = $this->context->queryArgs($builder->buildSelectQuery(), $builder->getParameters());
     $entities = [];
     while ($data = $result->fetch()) {
         $entity = $this->targetRepository->hydrateEntity((array) $data);
         $entities[$entity->id] = $entity;
     }
     return new EntityContainer($entities);
 }
 protected function fetch(QueryBuilder $builder, $hasJoin, array $values, IEntityPreloadContainer $preloadContainer = NULL)
 {
     $values = array_values(array_unique(array_filter($values, function ($value) {
         return $value !== NULL;
     })));
     if (count($values) === 0) {
         return new EntityContainer([], $preloadContainer);
     }
     $primaryKey = $this->targetRepository->getMapper()->getStorageReflection()->getStoragePrimaryKey()[0];
     $builder->andWhere('%column IN %any', $primaryKey, $values);
     $builder->addSelect(($hasJoin ? 'DISTINCT ' : '') . '%table.*', $builder->getFromAlias());
     $result = $this->connection->queryArgs($builder->getQuerySQL(), $builder->getQueryParameters());
     $entities = [];
     while ($data = $result->fetch()) {
         $entity = $this->targetRepository->hydrateEntity($data->toArray());
         $entities[$entity->getValue('id')] = $entity;
     }
     return new EntityContainer($entities, $preloadContainer);
 }
Esempio n. 3
0
 protected function execute()
 {
     $builder = clone $this->builder;
     $builder->addSelect(($this->distinct ? 'DISTINCT ' : '') . $builder->getTableName() . '.*');
     $result = $this->context->queryArgs($builder->buildSelectQuery(), $builder->getParameters());
     $this->result = [];
     while ($data = $result->fetch()) {
         $this->result[] = $this->repository->hydrateEntity((array) $data);
     }
 }
 private function queryAndFetchEntities($query, $args, IEntityPreloadContainer $preloadContainer = NULL)
 {
     $result = $this->connection->queryArgs($query, $args);
     $entities = [];
     while ($data = $result->fetch()) {
         $entity = $this->targetRepository->hydrateEntity($data->toArray());
         $entities[$entity->getRawValue($this->metadata->relationship->property)][] = $entity;
     }
     return new EntityIterator($entities, $preloadContainer);
 }
 private function queryAndFetchEntities($query, $args)
 {
     $result = $this->context->queryArgs($query, $args);
     $entities = [];
     while ($data = $result->fetch()) {
         $entity = $this->targetRepository->hydrateEntity((array) $data);
         $entities[$entity->getForeignKey($this->metadata->relationshipProperty)][] = $entity;
     }
     return new EntityIterator($entities);
 }
 protected function execute()
 {
     $builder = clone $this->queryBuilder;
     $table = $builder->getFromAlias();
     if (!$this->distinct) {
         $builder->select("[{$table}.*]");
     } else {
         $builder->select("DISTINCT [{$table}.*]");
     }
     $result = $this->connection->queryArgs($builder->getQuerySql(), $builder->getQueryParameters());
     $this->result = [];
     while ($data = $result->fetch()) {
         $this->result[] = $this->repository->hydrateEntity($data->toArray());
     }
 }