/** * @return Entity[] */ protected function loadResults() { if ($this->results === null) { $this->results = $this->query->all(); $list = []; $key = $this->foreignKey; $setup = function () use(&$list, $key) { $list[] = $this->dataMapperArgs[2][$key]; }; foreach ($this->results as $result) { $setup->call($result); } $this->keys = $list; } return $this->results; }
/** * @param DataMapper $data * @param callable|null $callback * @return mixed */ protected function getResult(DataMapper $data, callable $callback = null) { $manager = $data->getEntityManager(); $related = $manager->resolveEntityMapper($this->entityClass); if ($this->foreignKey === null) { $this->foreignKey = $related->getForeignKey(); } $statement = new SQLStatement(); $select = new EntityQuery($manager, $related, $statement); $select->where($related->getPrimaryKey())->is($data->getColumn($this->foreignKey)); if ($this->queryCallback !== null || $callback !== null) { $query = new Query($statement); if ($this->queryCallback !== null) { ($this->queryCallback)($query); } if ($callback !== null) { $callback($query); } } return $select->get(); }
public function __construct(EntityManager $entityManager, EntityMapper $entityMapper, $statement, $table) { parent::__construct($entityManager, $entityMapper, $statement); $this->junctionTable = $table; }