Example #1
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();
 }