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

Метод dropIfExists

Метод dropIfExists класса Schema предназначен для удаления таблицы из базы данных. В отличие от метода drop, данный метод не вызывает ошибку, если удаляемая таблица отсутствует. Первым и единственным параметром передаётся имя таблицы. Метод возвращает void, то есть ничего не возвращает.

Синтаксис

<?php Schema::dropIfExists($tableName); ?>

Пример

Давайте удалим таблицу '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() { Schema::dropIfExists('articles'); } public function down() { Schema::create('articles', function (Blueprint $table) { $table->id(); $table->string('title'); $table->text('content'); $table->timestamps(); }); } }; ?>

Пример

Попробуем удалить таблицу, которая не существует. В отличие от метода drop, здесь не будет ошибки:

<?php use Illuminate\Console\Command; use Illuminate\Support\Facades\Schema; class DropTableCommand extends Command { protected $signature = 'table:drop {name}'; protected $description = 'Drop table if exists'; public function handle() { $tableName = $this->argument('name'); Schema::dropIfExists($tableName); $this->info("Table '$tableName' dropped or not exists."); } } ?>

Результат выполнения команды:

"Table 'non_existent_table' dropped or not exists."

Пример

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

<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Support\Facades\Schema; return new class extends Migration { public function up() { $tables = ['users', 'posts', 'comments']; foreach ($tables as $table) { if (Schema::hasTable($table)) { Schema::dropIfExists($table); } } } public function down() { // rollback code here } }; ?>

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

  • метод drop,
    который удаляет таблицу без проверки существования
  • метод hasTable,
    который проверяет существование таблицы в базе данных
  • метод create,
    который создаёт новую таблицу в базе данных
  • метод dropColumn,
    который удаляет столбцы из существующей таблицы
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить