Пример #1
0
 /**
  * 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;
 }
Пример #3
0
 /**
  * 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;
 }
Пример #4
0
 /**
  * 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})";
 }