/** * @param string $tableName * @return ColumnCollection */ public function factory($tableName) { $table = $this->connection->getDoctrineSchemaManager()->listTableDetails($tableName); $schemas = $table->getColumns(); list($foreignKeyColumns, $foreignTables) = $this->getForeignKeys($table); $indexes = Collection::make($table->getIndexes()); $columns = ColumnCollection::make([]); foreach ($schemas as $column) { $column = $this->buildColumn($column, $foreignKeyColumns, $foreignTables, $indexes); $columns->push($column); } return $columns; }