Esempio n. 1
0
 /**
  * Resolve the given columns supposed to be fetched
  *
  * This notifies the repository about each desired query column.
  *
  * @param   mixed   $target             The target where to look for each column
  * @param   array   $desiredColumns     Pass null or an empty array to require all query columns
  *
  * @return  array                       The desired columns indexed by their respective alias
  */
 protected function prepareQueryColumns($target, array $desiredColumns = null)
 {
     $this->customAliases = array();
     if (empty($desiredColumns)) {
         $columns = $this->repository->requireAllQueryColumns($target);
     } else {
         $columns = array();
         foreach ($desiredColumns as $customAlias => $columnAlias) {
             $resolvedColumn = $this->repository->requireQueryColumn($target, $columnAlias, $this);
             if ($resolvedColumn !== $columnAlias) {
                 if (is_string($customAlias)) {
                     $columns[$customAlias] = $resolvedColumn;
                     $this->customAliases[$customAlias] = $columnAlias;
                 } else {
                     $columns[$columnAlias] = $resolvedColumn;
                 }
             } elseif (is_string($customAlias)) {
                 $columns[$customAlias] = $columnAlias;
                 $this->customAliases[$customAlias] = $columnAlias;
             } else {
                 $columns[] = $columnAlias;
             }
         }
     }
     return $columns;
 }
Esempio n. 2
0
 /**
  * Return this repository's query columns of the given table mapped to their respective aliases
  *
  * @param   array|string    $table
  *
  * @return  array
  *
  * @throws  ProgrammingError    In case $table does not exist
  */
 public function requireAllQueryColumns($table)
 {
     return parent::requireAllQueryColumns($this->removeTablePrefix($this->clearTableAlias($table)));
 }