Nextras\Orm\Mapper\Dbal\RelationshipMapperManyHasOne::fetch PHP 메소드

fetch() 보호된 메소드

protected fetch ( Nextras\Dbal\QueryBuilder\QueryBuilder $builder, $hasJoin, array $values )
$builder Nextras\Dbal\QueryBuilder\QueryBuilder
$values array
    protected function fetch(QueryBuilder $builder, $hasJoin, array $values)
    {
        $values = array_values(array_unique(array_filter($values, function ($value) {
            return $value !== null;
        })));
        if (count($values) === 0) {
            return new EntityContainer([]);
        }
        $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);
    }