Чтобы обратимо удалить записи в Laravel 8, вы можете использовать встроенную функцию обратимого удаления, предоставляемую Eloquent, системой ORM (объектно-реляционное сопоставление) Laravel. Вот несколько методов, которые вы можете использовать, а также примеры кода:
- Использование признака
SoftDeletes:
Laravel предоставляет признакSoftDeletes, который вы можете добавить в свой класс модели. Эта черта добавляет необходимые столбцы и методы для включения мягкого удаления.
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class YourModel extends Model
{
use SoftDeletes;
}
- Настройка столбца
deleted_atвручную:
Если вы не хотите использовать признакSoftDeletes, вы можете вручную установитьdeleted_at>столбец, чтобы пометить запись как удаленную.
// Soft delete a record
$record = YourModel::find($id);
$record->deleted_at = now();
$record->save();
// Restore a soft-deleted record
$record = YourModel::withTrashed()->find($id);
$record->deleted_at = null;
$record->save();
// Permanently delete a record
$record = YourModel::withTrashed()->find($id);
$record->forceDelete();
- Запрос обратимо удаленных записей.
Вы можете получить обратимо удаленные записи вместе с неудаленными записями, используя методwithTrashed.
// Retrieve all records (including soft-deleted)
$records = YourModel::withTrashed()->get();
// Retrieve only soft-deleted records
$records = YourModel::onlyTrashed()->get();
- Восстановление обратимо удаленных записей.
Вы можете восстановить обратимо удаленные записи с помощью методаrestore.
$record = YourModel::onlyTrashed()->find($id);
$record->restore();