|
3 | 3 | namespace DreamFactory\Core\Database\Schema; |
4 | 4 |
|
5 | 5 | use DreamFactory\Core\Enums\DbSimpleTypes; |
| 6 | +use Illuminate\Support\Facades\Log; |
6 | 7 |
|
7 | 8 |
|
8 | 9 | /** |
@@ -203,20 +204,28 @@ public function getColumnNames($use_alias = false) |
203 | 204 | * |
204 | 205 | * @return ColumnSchema[] |
205 | 206 | */ |
206 | | - public function getColumns($use_alias = false) |
| 207 | + public function getColumns(bool $use_alias = false): array |
207 | 208 | { |
208 | | - if ($use_alias) { |
209 | | - // re-index for alias usage, easier to find requested fields from client |
210 | | - $columns = []; |
211 | | - /** @var ColumnSchema $column */ |
| 209 | + if (!$use_alias) { |
| 210 | + return !is_array($this->columns) ? [] : $this->columns; |
| 211 | + } |
| 212 | + |
| 213 | + // re-index for alias usage, easier to find requested fields from client |
| 214 | + $columns = []; |
| 215 | + $this->columns = null; |
| 216 | + |
| 217 | + /** @var ColumnSchema $column */ |
| 218 | + try { |
212 | 219 | foreach ($this->columns as $column) { |
213 | 220 | $columns[strtolower($column->getName(true))] = $column; |
214 | 221 | } |
215 | | - |
216 | | - return $columns; |
| 222 | + } catch (\Exception $exception) { |
| 223 | + Log::info("Columns field type: " . gettype($this->columns)); |
| 224 | + Log::error($exception->getMessage()); |
| 225 | + Log::error($exception->getTraceAsString()); |
217 | 226 | } |
218 | 227 |
|
219 | | - return $this->columns; |
| 228 | + return $columns; |
220 | 229 | } |
221 | 230 |
|
222 | 231 | public function addRelation(RelationSchema $relation) |
@@ -301,9 +310,16 @@ public function toArray($use_alias = false) |
301 | 310 |
|
302 | 311 | $fields = []; |
303 | 312 | /** @var ColumnSchema $column */ |
304 | | - foreach ($this->columns as $column) { |
305 | | - $fields[] = $column->toArray($use_alias); |
| 313 | + try { |
| 314 | + foreach ($this->columns as $column) { |
| 315 | + $fields[] = $column->toArray($use_alias); |
| 316 | + } |
| 317 | + } catch (\Exception $exception) { |
| 318 | + Log::info("Columns field type: " . gettype($this->columns)); |
| 319 | + Log::error($exception->getMessage()); |
| 320 | + Log::error($exception->getTraceAsString()); |
306 | 321 | } |
| 322 | + |
307 | 323 | $out['field'] = $fields; |
308 | 324 |
|
309 | 325 | $relations = []; |
|
0 commit comments