mirror of
https://github.com/yiisoft/yii2.git
synced 2025-08-16 15:21:13 +08:00
Update QueryBuilder.php
solution used **heukirne** for the names of columns.
This commit is contained in:
@ -197,7 +197,7 @@ class QueryBuilder extends \yii\db\QueryBuilder
|
|||||||
$select = $query->select = '*';
|
$select = $query->select = '*';
|
||||||
}
|
}
|
||||||
if ($select === '*') {
|
if ($select === '*') {
|
||||||
$columns = $this->getAllColumnNames($query->from[0]);
|
$columns = $this->getAllColumnNames($query->modelClass);
|
||||||
if ($columns && is_array($columns))
|
if ($columns && is_array($columns))
|
||||||
$select = implode(', ', $columns);
|
$select = implode(', ', $columns);
|
||||||
else
|
else
|
||||||
@ -209,13 +209,14 @@ class QueryBuilder extends \yii\db\QueryBuilder
|
|||||||
return $sql;
|
return $sql;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected function getAllColumnNames($table = null)
|
protected function getAllColumnNames($modelClass = null)
|
||||||
{
|
{
|
||||||
if (!$table) {
|
if (!$modelClass) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
$columns = $this->db->createCommand("SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME='{$table}'")->queryColumn();
|
$model = new $modelClass;
|
||||||
array_walk($columns, create_function('&$str', '$str = "[$str]";'));
|
$schema = $model->getTableSchema();
|
||||||
|
$columns = array_keys($schema->columns);
|
||||||
return $columns;
|
return $columns;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user