/** * Retorna uma string com a relação de colunas * * @return string * */ public function renderColumns() { $columns = array(); foreach ($this->_entity->columns() as $column) { if (FALSE == isset($column->database)) { // @codeCoverageIgnoreStart continue; // @codeCoverageIgnoreEnd } $column = Column::factory($column->name, $this->_entity, 'database'); if ($column) { $columns[] = $column->render(); } } return implode(', ', $columns); }
/** * Construtor. * * Se informado uma entidade, todas as colunas de Entity, referente a banco de dados, serão * usadas para compor a relação de colunas do Select. * * @param Entity $ntity * */ public function __construct(Entity $entity = NULL) { if (NULL === $entity) { return; } # define a entidade trabalho $this->from($entity); # define as colunas if (NULL != $entity) { foreach ($entity->columns() as $column) { $col = NULL; try { $col = Column::factory($column->name, $entity, 'database'); } catch (IllegalArgumentException $iae) { } if (NULL != $col) { $this->_columns[$column->name] = $col; } } } }
/** * Adiciona uma coluna a Query * * <p> * Sendo $coluna uma string, sera verificado em Entity a existencia de uma coluna que corresponda ao string * informado e se nenhuma correpondencia for encontrada uma exception do tioi IllegalArgumentException sera * lancada. * </p> * <p> * Sendo $column do tipo database/Column esta sera adicionado diretamente * </p> * * @example database::Query::addColumn * <code> * <?php * # vide Query::factory * $query = Query::factory(...); * * # adiciona uma coluna a query informando o nome da mesma * $query->addColumn('columnNam'); * * # adiciona uma coluna informando um objeto * $column = Column::factory(...); * $query->addColumn($column); * ?> * </code> * * @override * <ul> * <li>Query::addColumn(string $column)</li> * <li>Query::addColumn(Column $column)</li> * </ul> * * @param $column * @return Query * @throws IllegalArgumentException * */ public function addColumn($column) { if (TRUE == is_string($column)) { $column = Column::factory($column, $this->_entity, 'database'); } $this->_select->addColumn($column); return $this; }