>PHP 프레임워크 >Laravel >laravel5.4의 소프트 삭제란 무엇입니까?

laravel5.4의 소프트 삭제란 무엇입니까?

WBOY
WBOY원래의
2022-06-01 16:09:461910검색

"Laravel 5.4"에서 소프트 삭제는 테이블 레코드의 상태를 삭제 상태로 표시하는 것을 의미합니다. 실제로 데이터베이스에서 삭제되지 않으므로 테이블에서 소프트 삭제를 수행할 수 있도록 필터링을 추가할 수 있습니다. "deleted_at" 필드 값으로 식별되며 기본값은 null입니다.

laravel5.4의 소프트 삭제란 무엇입니까?

이 기사의 운영 환경: Windows 10 시스템, Laravel 버전 5.4, Dell G3 컴퓨터.

laravel 5.4에서 소프트 삭제란 무엇인가요?

소프트 삭제는 실제로 데이터베이스에서 삭제되지 않지만 테이블에서 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(&#39;users&#39;, function (Blueprint $table) {
            $table->id();
            $table->string(&#39;name&#39;);
            $table->string(&#39;email&#39;)->unique();
            $table->timestamp(&#39;email_verified_at&#39;)->nullable();
            $table->string(&#39;password&#39;);
            $table->rememberToken();
            $table->timestamps();
            $table->softDeletes()->comment(&#39;删除时间&#39;);// 默认添加 deleted_at 字段
        });
    }
    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists(&#39;users&#39;);
    }
};

[관련 권장 사항: laravel 비디오 튜토리얼]

위 내용은 laravel5.4의 소프트 삭제란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.