Se agrega capacidad de seleccion segun orm
This commit is contained in:
@ -29,12 +29,17 @@ class Model {
|
||||
return $this;
|
||||
}
|
||||
protected $columns;
|
||||
/**
|
||||
* <column>, [<column1>, <column2>, ...]
|
||||
* string | array(array)
|
||||
* <column>: [<name>, *<alias>, *<type>]
|
||||
*/
|
||||
public function select($columns): Model {
|
||||
if ($this->columns == null) {
|
||||
$this->columns = [];
|
||||
}
|
||||
if (!is_array($columns)) {
|
||||
$columns = [$columns];
|
||||
$columns = [[$columns]];
|
||||
}
|
||||
$this->columns = array_merge($this->columns, $columns);
|
||||
return $this;
|
||||
@ -43,12 +48,21 @@ class Model {
|
||||
if ($this->columns == null or count($this->columns) == 0) {
|
||||
return $orm;
|
||||
}
|
||||
foreach ($this->columns as $column => $alias) {
|
||||
if (is_numeric($column)) {
|
||||
$orm = $orm->select($alias);
|
||||
continue;
|
||||
foreach ($this->columns as $column) {
|
||||
if (is_string($column)) {
|
||||
$column = [$column];
|
||||
}
|
||||
$orm = $orm->select($column, $alias);
|
||||
$alias = $column['alias'] ?? $column[1] ?? $column[0];
|
||||
$method = 'select';
|
||||
if (count($column) > 2 or isset($column['type'])) {
|
||||
$type = $column['type'] ?? $column[2] ?? '';
|
||||
switch ($type) {
|
||||
case 'expr':
|
||||
$method .= 'Expr';
|
||||
break;
|
||||
}
|
||||
}
|
||||
$orm = $orm->{$method}($column, $alias);
|
||||
}
|
||||
return $orm;
|
||||
}
|
||||
|
Reference in New Issue
Block a user