Example #1
0
 /**
  * @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;
 }
Example #2
0
 /**
  * @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();
 }
Example #3
0
 public function __construct(EntityManager $entityManager, EntityMapper $entityMapper, $statement, $table)
 {
     parent::__construct($entityManager, $entityMapper, $statement);
     $this->junctionTable = $table;
 }