Хорошим стилем программирования является не удалять сразу начисто все данные. Вдруг пригодится. Что-то вроде удаления в корзину. Это называется называется мягким удалением, когда объект на самом деле не удаляется из базы, а просто помечается удаленным, и его можно либо удалить до конца, либо восстановить из корзины. Сегодня поговорим об этом: Laravel добавить мягкое удаление в миграции.

Для начала в модели, в которой будет мягкое удаление добавим строку после обозначения класса, которая подскажет Laravel, что эта модель использует мягкое удаление:

use SoftDeletes;

Затем создадим миграцию, в функции up напишем, что мы хотим добавить колонку для мягкого удаления.

public function up() { 
Schema::table("users", function ($table) { 
$table->softDeletes(); 
}); 
}

Но не менее важно в миграциях соблюдать чистоту. То есть всё, что создаётся в функции up миграции нужно уничтожить либо отменить в функции down. Это делается для того, чтобы при откате миграции, вы имели нужную версию базы, именно ту, которая была до накатки миграции.

Laravel миграция убрать soft delete
При создании мягкого удаления в миграции, создаётся дополнительная колонка deleted_at, в выбранной таблице. Поэтому и для отката этой миграции нужно удалить эту дополнительную колонку (странно, что для этого нет специальной функции).

public function down() {
Schema::table("users", function ($table) { 
$table->dropColumn('deleted_at');
}); }
Понравилась или помогла статья?
Купите мне кофеКупите мне кофе