Освоение мягкого удаления в Laravel: подробное руководство

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

Метод 1. Использование признака SoftDeletes:
Самый простой способ включить обратимое удаление в Laravel — использовать встроенный признак SoftDeletes, предоставляемый Eloquent. Эта черта добавляет в вашу модель необходимые поля и методы для функциональности обратимого удаления. Вот пример:

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class YourModel extends Model
{
    use SoftDeletes;
    protected $dates = ['deleted_at'];
}

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

$model = YourModel::find($id);
$model->delete();

Метод 3. Восстановление обратимо удаленной модели.
Если вам нужно восстановить обратимо удаленную модель, вы можете использовать метод restore(). Этот метод удалит поле метки времени deleted_atи сохранит модель, фактически восстановив ее. Вот пример:

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

Метод 4: окончательное удаление модели:
В некоторых случаях вам может потребоваться окончательно удалить обратимо удаленную модель. Для этого вы можете использовать метод forceDelete(). Он удалит запись из базы данных без возможности восстановления. Вот пример:

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

Метод 5. Запрос обратимо удаленных моделей.
Вы можете запросить обратимо удаленные модели с помощью метода withTrashed(). Он позволяет получать как удаленные, так и неудаленные записи. Вот пример:

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

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