Освоение мягкого удаления в Laravel 8: удаление с помощью сети безопасности

В Laravel 8 функция обратимого удаления предоставляет удобный способ «удаления» записей из вашей базы данных, сохраняя при этом возможность восстановить их позже, если это необходимо. Эта функция особенно полезна при работе с данными, которые не следует удалять из приложения без возможности восстановления. В этой статье мы рассмотрим концепцию обратимого удаления и обсудим различные методы ее реализации в Laravel 8, используя разговорный язык и примеры кода.

Метод 1: использование признака softDeletes
Признак softDeletes— это встроенная функция в Laravel 8, которая обеспечивает функцию обратимого удаления для ваших моделей Eloquent. Чтобы использовать его, выполните следующие действия:

Шаг 1. Добавьте в таблицу столбец deleted_at:

Schema::table('your_table', function (Blueprint $table) {
    $table->softDeletes();
});

Шаг 2. Добавьте признак SoftDeletesв вашу модель:

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class YourModel extends Model
{
    use SoftDeletes;
}

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

Метод 2: восстановление обратимо удаленных записей
Чтобы восстановить обратимо удаленные записи, вы можете использовать метод restore(), предоставляемый признаком SoftDeletes. Вот пример:

$record = YourModel::withTrashed()->find($id);
$record->restore();

Метод 3: запрос обратимо удаленных записей
Laravel предлагает несколько методов запроса обратимо удаленных записей:

  • Чтобы получить только обратимо удаленные записи:

    $records = YourModel::onlyTrashed()->get();
  • Чтобы включить как обратимо удаленные, так и неудаленные записи:

    $records = YourModel::withTrashed()->get();

Метод 4: безвозвратное удаление обратимо удаленных записей
Если вам больше не нужно хранить обратимо удаленные записи и вы хотите удалить их навсегда, вы можете использовать метод forceDelete():

$record = YourModel::withTrashed()->find($id);
$record->forceDelete();

Метод 5: настройка столбца обратимого удаления
По умолчанию Laravel использует столбец deleted_atдля операций обратимого удаления. Однако вы можете настроить имя столбца, переопределив свойство $deletedAtв вашей модели:

protected $deletedAt = 'custom_column_name';

Мягкое удаление — это мощная функция Laravel 8, которая позволяет безопасно удалять записи, не удаляя их навсегда из базы данных. Используя признак softDeletesи предоставленные методы, вы можете легко реализовать функцию обратимого удаления и управлять ею в своих приложениях Laravel. Понимание и использование обратимого удаления может значительно расширить возможности вашего приложения по управлению данными.