Laravel은 개발자에게 많은 편리한 기능을 제공하는 강력한 PHP 프레임워크입니다. 그 중에서도 소프트 삭제는 매우 유용한 기능입니다. 이 글에서는 Laravel 프레임워크에서 소프트 삭제를 구현하는 방법을 소개합니다.
소프트 삭제란 실제로 기록을 삭제하는 것이 아니라 기록을 삭제된 것으로 표시하는 것을 말합니다. 이는 데이터 무결성을 유지하면서 삭제된 기록을 복구할 수 있는 기회를 제공합니다. 레코드를 직접 삭제하면 일부 종속성이 발생할 수 있으므로 소프트 삭제가 매우 좋은 선택입니다.
먼저 Laravel에서 소프트 삭제를 활성화하려면 모델에서 SoftDeletes
기능을 사용해야 합니다. SoftDeletes
特性。
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\SoftDeletes; class User extends Model { use SoftDeletes; protected $dates = ['deleted_at']; }
在上面的示例中,我们使用use SoftDeletes
来启用软删除,并定义了一个deleted_at
属性,它将在模型中用于保存软删除的时间戳。
一旦我们启用了SoftDeletes
特性,我们就可以在Laravel中使用delete()
方法执行软删除。该方法会将deleted_at
属性设置为当前时间戳。要恢复一个软删除的记录,我们需要使用Laravel中的restore()
方法。
// 在模型中软删除一个记录 $user = User::find(1); $user->delete(); // 恢复一个软删除的记录 $user = User::withTrashed()->where('id', 1)->first(); $user->restore();
在以上代码中,我们首先使用delete()
方法软删除了一条记录。然后,我们使用withTrashed()
方法来检索软删除的记录,然后使用restore()
方法来恢复该记录。
当我们从表中检索数据时,我们通常不希望返回已删除的记录。使用Laravel的onlyTrashed()
方法,我们可以只列出已删除的记录。若要列出所有记录,包括已删除的记录,请使用withTrashed()
方法。
// 获取只删除的记录 $deletedUsers = User::onlyTrashed()->get(); // 获取所有记录,包括已删除的记录 $allUsers = User::withTrashed()->get();
Laravel还提供了一个forceDelete()
方法,用于强制删除软删除的记录。这个方法会完全从数据库中删除记录,而不是简单地将deleted_at
// 永久删除一个已删除记录 $user = User::withTrashed()->where('id', 1)->first(); $user->forceDelete();
SoftDeletes 사용
을 사용하여 소프트 삭제를 활성화하고 모델에서 소프트 삭제된 타임스탬프를 저장하는 데 사용할 deleted_at
속성을 정의합니다.
SoftDeletes
기능을 활성화하면 delete()
메서드를 사용하여 Laravel에서 소프트 삭제를 수행할 수 있습니다. 이 메소드는 deleted_at
속성을 현재 타임스탬프로 설정합니다. 일시 삭제된 레코드를 복원하려면 Laravel의 restore()
메서드를 사용해야 합니다. 🎜rrreee🎜위 코드에서는 먼저 delete()
메서드를 사용하여 레코드를 소프트 삭제합니다. 그런 다음 withTrashed()
메서드를 사용하여 일시 삭제된 레코드를 검색한 다음 restore()
메서드를 사용하여 레코드를 복원합니다. 🎜🎜테이블에서 데이터를 검색할 때 일반적으로 삭제된 레코드가 반환되는 것을 원하지 않습니다. Laravel의 onlyTrashed()
메소드를 사용하면 삭제된 레코드만 나열할 수 있습니다. 삭제된 레코드를 포함하여 모든 레코드를 나열하려면 withTrashed()
메서드를 사용하세요. 🎜rrreee🎜Laravel은 일시 삭제된 기록을 강제로 삭제할 수 있는 forceDelete()
메서드도 제공합니다. 이 방법은 단순히 deleted_at
속성을 현재 타임스탬프로 설정하는 것이 아니라 데이터베이스에서 레코드를 완전히 삭제합니다. 🎜rrreee🎜이 글에서는 Laravel에서 일시 삭제를 활성화하고 사용하는 방법을 배웠습니다. 소프트 삭제는 데이터 무결성을 향상시키고 삭제된 기록을 쉽게 복구하는 데 도움이 됩니다. 실제 프로젝트에서 소프트 삭제는 프로젝트의 필요에 따라 사용할 수 있는 매우 유용한 기능입니다. 🎜위 내용은 Laravel 프레임워크에서 일시 삭제를 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!