public Schema::dropField($table, $field)
Drop a field.
Parameters
$table: The table to be altered.
$field: The field to be dropped.
Return value
TRUE if the field was successfully dropped, FALSE if there was no field by that name to begin with.
Overrides Schema::dropField
File
- core/lib/Drupal/Core/Database/Driver/sqlite/Schema.php, line 503
Class
- Schema
- SQLite implementation of \Drupal\Core\Database\Schema.
Namespace
Drupal\Core\Database\Driver\sqlite
Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | public function dropField( $table , $field ) { if (! $this ->fieldExists( $table , $field )) { return FALSE; } $old_schema = $this ->introspectSchema( $table ); $new_schema = $old_schema ; unset( $new_schema [ 'fields' ][ $field ]); // Handle possible primary key changes. if (isset( $new_schema [ 'primary key' ]) && ( $key = array_search ( $field , $new_schema [ 'primary key' ])) !== FALSE) { unset( $new_schema [ 'primary key' ][ $key ]); } // Handle possible index changes. foreach ( $new_schema [ 'indexes' ] as $index => $fields ) { foreach ( $fields as $key => $field_name ) { if ( $field_name == $field ) { unset( $new_schema [ 'indexes' ][ $index ][ $key ]); } } // If this index has no more fields then remove it. if ( empty ( $new_schema [ 'indexes' ][ $index ])) { unset( $new_schema [ 'indexes' ][ $index ]); } } $this ->alterTable( $table , $old_schema , $new_schema ); return TRUE; } |
Please login to continue.