Tips
17 липня 2026
Soft Deletes - ніколи не втрачайте дані
Користувач випадково видалив свій акаунт. Відновити не можна. Негатив забезпечено.
Soft Deletes позначають запис як видалений, але фактично не прибирають його з бази.
Як працює:
Додаємо поле deleted_at, а Laravel автоматично приховує такі записи.
Корисні методи:
forceDelete()- повне видаленняwithTrashed()- включити видаленіonlyTrashed()- лише видаленіrestore()- відновити
Порада: Сумісно з GDPR: можна відновити за 30 днів, а потім зробити force delete.
// Міграція
Schema::table('users', function (Blueprint $table) {
$table->softDeletes();
});
// Модель
use Illuminate\Database\Eloquent\SoftDeletes;
class User extends Model
{
use SoftDeletes;
}
// Використання
$user->delete(); // Soft delete
$user->forceDelete(); // Повне видалення
// Запити
User::all(); // Тільки активні
User::withTrashed()->get(); // Включно з видаленими
User::onlyTrashed()->get(); // Лише видалені
// Відновлення
$user = User::withTrashed()->find(1);
$user->restore();
// Перевірка
if ($user->trashed()) {
// Користувач видалений
}