Laravel 8에서 일시 삭제를 사용하는 방법
일시 삭제란 무엇이며 왜 사용합니까?
일시 삭제는 데이터베이스에서 데이터를 완전히 제거하지 않고 데이터가 삭제를 위해 레코드를 선택하거나 표시하지 못하도록 합니다.
예를 들어 실수로 데이터베이스에서 데이터를 삭제한 경우 쉽게 검색하거나 복원할 수 없으며 프로젝트 내에서 사용된 경우 문제가 발생할 수 있습니다. 이를 방지하기 위해 laravel은 소프트 삭제 기능을 활성화하는 특성
Illuminate\Database\Eloquent\SoftDeletes
을 지원합니다. 이는 Eloquent 모델에 Soft delete를 추가할 수 있음을 의미합니다.사용 방법을 살펴보겠습니다.
먼저 어떤 모델을 설정해야 하는지 결정하고 이
use SoftDeletes
특성을 가진 모델에 Illuminate\Database\Eloquent\SoftDeletes
를 추가해야 합니다. 이 특성은 자동으로 deleted_at 속성 DateTime/Carbon 인스턴스를 캐스팅합니다.예를 들어 하드 삭제 대신 사용자를 삭제하는 기능이 있으므로 이제 사용자 모델에서 소프트 삭제를 사용합니다.
아래 코드를 사용하여 애플리케이션에 추가하십시오.
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class User extends Model
{
use SoftDeletes;
}
우리가 그것을 사용할 때, 그것은
deleted_at
속성을 설정할 뿐만 아니라 데이터베이스에 deleted_at
필드/열을 추가할 수 있습니다. 그 laravel 스키마 빌더는 아래와 같이 도우미 메서드를 제공했습니다.use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
Schema::table('flights', function (Blueprint $table) {
$table->softDeletes();
});
Schema::table('flights', function (Blueprint $table) {
$table->dropSoftDeletes();
});
데이터를 삭제하면
deleted_at
필드에 현재 날짜 n 시간이 추가됩니다. 사용자 목록을 가져올 때 일시 삭제된 사용자는 모든 쿼리 결과에서 자동으로 제외됩니다.일시 삭제된 데이터를 보려면 일시 삭제에서 제공하는
trashed()
메서드를 사용하여 가져올 수 있습니다. $user->trashed()
restore()
. $user->restore();
User::withTrashed()
->restore();
withTrashed()
.User::withTrashed()->get();
$user->forceDelete();
onlyTrashed()
메서드를 사용하여 검색할 수 있습니다.User::onlyTrashed()->get();
일시 삭제에서 제공하는 여러 방법을 보았습니다. 그것은 우리가 그것들의 도움으로 데이터를 가져오고 복원할 수 있다는 것을 의미합니다.
읽어 주셔서 감사합니다. 🦄 🦄 🦁
Reference
이 문제에 관하여(Laravel 8에서 일시 삭제를 사용하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/snehalkadwe/how-to-use-soft-delete-in-laravel-8-1bf9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)