РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
353 of 1392 menu

Метод dropColumn

Метод dropColumn применяется к схеме таблицы через класс Blueprint в миграциях Laravel. Он позволяет удалить существующую колонку из таблицы. Первым параметром передаётся имя колонки в виде строки, вторым - опциональный массив имён колонок для массового удаления.

Синтаксис

<?php Schema::table('table_name', function (Blueprint $table) { $table->dropColumn('column_name'); }); ?>

Для удаления нескольких колонок сразу можно передать массив:

<?php Schema::table('table_name', function (Blueprint $table) { $table->dropColumn(['column1', 'column2', 'column3']); }); ?>

Пример

Давайте создадим миграцию для удаления колонки 'phone' из таблицы 'users':

<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { public function up(): void { Schema::table('users', function (Blueprint $table) { $table->dropColumn('phone'); }); } public function down(): void { Schema::table('users', function (Blueprint $table) { $table->string('phone')->nullable(); }); } }; ?>

Пример

Давайте удалим сразу несколько колонок из таблицы 'articles':

<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { public function up(): void { Schema::table('articles', function (Blueprint $table) { $table->dropColumn(['meta_title', 'meta_description', 'meta_keywords']); }); } public function down(): void { Schema::table('articles', function (Blueprint $table) { $table->string('meta_title')->nullable(); $table->text('meta_description')->nullable(); $table->string('meta_keywords')->nullable(); }); } }; ?>

Пример

Удалим колонку с внешним ключом, предварительно удалив сам внешний ключ:

<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { public function up(): void { Schema::table('posts', function (Blueprint $table) { $table->dropForeign(['user_id']); $table->dropColumn('user_id'); }); } public function down(): void { Schema::table('posts', function (Blueprint $table) { $table->foreignId('user_id')->constrained(); }); } }; ?>

Пример

Удалим колонку, используя метод dropColumn внутри миграции с проверкой на существование таблицы:

<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { public function up(): void { if (Schema::hasTable('products') && Schema::hasColumn('products', 'expired_at')) { Schema::table('products', function (Blueprint $table) { $table->dropColumn('expired_at'); }); } } public function down(): void { if (Schema::hasTable('products')) { Schema::table('products', function (Blueprint $table) { $table->date('expired_at')->nullable(); }); } } }; ?>

Смотрите также

  • метод renameColumn,
    который переименовывает колонку в таблице
  • метод index,
    который создаёт индекс для колонки
  • метод foreign,
    который создаёт внешний ключ
  • класс Schema,
    который управляет схемой базы данных
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить