"Laravel 5.4"에서 소프트 삭제는 테이블 레코드의 상태를 삭제 상태로 표시하는 것을 의미합니다. 실제로 데이터베이스에서 삭제되지 않으므로 테이블에서 소프트 삭제를 수행할 수 있도록 필터링을 추가할 수 있습니다. "deleted_at" 필드 값으로 식별되며 기본값은 null입니다.
이 기사의 운영 환경: Windows 10 시스템, Laravel 버전 5.4, Dell G3 컴퓨터.
소프트 삭제는 실제로 데이터베이스에서 삭제되지 않지만 테이블에서 delete_at 필드 값으로 식별됩니다(이 필드의 이름도 고정됨). 디자인 테이블 delete_at 이 필드를 추가하면 기본값은 null입니다.
일명 소프트 삭제란 데이터 테이블 레코드가 실제로 데이터베이스에서 삭제되는 것이 아니라 테이블 레코드의 식별 상태가 소프트 삭제됨으로 표시되는 것을 의미합니다. , 쿼리할 때 해당 테이블 레코드가 "삭제된" 것처럼 보이도록 필터링할 수 있습니다. Laravel은 식별 상태로 날짜 필드를 사용합니다. 여기서는 delete_at를 사용합니다. 해당 모델이 소프트 삭제된 경우 삭제된_at 필드의 값은 삭제 시간입니다.
소프트 삭제는 데이터를 유지하고 삭제 상태로 표시하는 것이 일반적이므로 표시 상태와 삭제 시간도 알 수 있습니다.
타입은 timestamp('deleted_at')
모델에 SoftDeletes
use Illuminate\Database\Eloquent\SoftDeletes; class TestModel extends Model { use SoftDeletes; protected $dates = ['deleted_at']; }
를 추가하세요. 예제는 다음과 같습니다.
Laravel의 자체 Eloquent ORM을 사용하여 소프트 삭제를 구현합니다.
먼저 데이터 마이그레이션 파일에 삭제 시간 필드를 추가하세요
./database/migrations/2014_10_12_000000_create_users_table.php
<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('users', function (Blueprint $table) { $table->id(); $table->string('name'); $table->string('email')->unique(); $table->timestamp('email_verified_at')->nullable(); $table->string('password'); $table->rememberToken(); $table->timestamps(); $table->softDeletes()->comment('删除时间');// 默认添加 deleted_at 字段 }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('users'); } };
[관련 권장 사항: laravel 비디오 튜토리얼]
위 내용은 laravel5.4의 소프트 삭제란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!