/** * Compile the blueprint's column definitions. * * @param Illuminate\Database\Schema\Blueprint $blueprint * @return array */ protected function getColumns(Blueprint $blueprint) { $columns = array(); foreach ($blueprint->getColumns() as $column) { // Each of the column types have their own compiler functions which are // responsible for turning the column definition into its SQL format // for the platform. Then column modifiers are compiled and added. $sql = $this->wrap($column) . ' ' . $this->getType($column); $columns[] = $this->addModifiers($sql, $blueprint, $column); } return $columns; }
/** * get qualified autoincrement column * * @param Blueprint $blueprint * @return Fluent|null */ public function getQualifiedAutoIncrementColumn(Blueprint $blueprint) { $columns = $blueprint->getColumns(); // search for primary key / autoIncrement column foreach ($columns as $column) { // if column is autoIncrement set the primary col name if ($column->autoIncrement) { return $column; } } return null; }
/** * Compile the blueprint's column definitions. * * @param \Illuminate\Database\Schema\Blueprint $blueprint * @return array */ protected function getColumns(Blueprint $blueprint) { $columns = array(); foreach ($blueprint->getColumns() as $column) { // Each of the column types have their own compiler functions which are tasked // with turning the column definition into its SQL format for this platform // used by the connection. The column's modifiers are compiled and added. $sql = $this->wrap($column) . ' ' . $this->getType($column); $columns[] = $this->addModifiers($sql, $blueprint, $column); } return $columns; }
/** * Compile an index creation command. * * @param \Illuminate\Database\Schema\Blueprint $blueprint * @param \Illuminate\Support\Fluent $command * @param string $type * @return string */ protected function compileKey(IlluminateBlueprint $blueprint, Fluent $command, $type) { $columns = []; foreach ($command->columns as $commandColumn) { foreach ($blueprint->getColumns() as $blueprintColumn) { if ($blueprintColumn->name != $commandColumn) { continue; } $column = $this->wrap($commandColumn); if (isset($command->length)) { $column .= "({$command->length})"; } elseif ('string' == $blueprintColumn->type && $blueprintColumn->length > 255) { $column .= '(255)'; } $columns[] = $column; } } $columns = implode(', ', $columns); $table = $this->wrapTable($blueprint); return "alter table {$table} add {$type} {$command->index}({$columns})"; }