ホームページ  >  記事  >  PHPフレームワーク  >  laravel5.4のソフトデリートとは何ですか?

laravel5.4のソフトデリートとは何ですか?

WBOY
WBOYオリジナル
2022-06-01 16:09:461869ブラウズ

「Laravel5.4」では、ソフト削除とは、テーブルレコードのステータスを削除済みとしてマークすることを指し、実際にはデータベースから削除されないため、クエリ時にフィルタリングを追加できます。テーブル内では「deleted_at」フィールド値で識別され、デフォルト値は null です。

laravel5.4のソフトデリートとは何ですか?

この記事の動作環境: Windows 10 システム、Laravel バージョン 5.4、Dell G3 コンピューター。

laravel5.4のソフトデリートとは

ソフトデリートとは実際にデータベースから削除するのではなく、テーブル内のフィールドdeleted_at(このフィールドの名前も固定です)の値の識別、テーブルの設計時にこのフィールド delete_at を追加する必要があります。デフォルト値は null です。

いわゆる論理的な削除とは、データ テーブルのレコードが実際にはデータベースから削除されないことを意味しますが、テーブルのレコードは識別ステータスは論理的に削除されたものとしてマークされるため、クエリ中にフィルタリングして、対応するテーブル レコードが「削除」されたように見せることができます。 Laravel は識別ステータスとして日付フィールドを使用します。この日付フィールドはカスタマイズできます。ここでは、deleted_at を使用します。対応するモデルが論理的に削除されている場合、deleted_at フィールドの値は削除時刻です。それ以外の場合、値は空です。

ソフト削除は論理的な削除です。データ保持シートには削除ステータスがマークされます。一般的には、マークのステータスが利用可能であり、削除時刻も利用できるように、削除時刻をマークとして使用します。

タイプは timestamp('deleted_at')です

モデルに SoftDelete の使用を追加します

use Illuminate\Database\Eloquent\SoftDeletes;
 
class TestModel extends Model 
{
    use SoftDeletes;
 
    
    protected $dates = ['deleted_at'];
}

例は次のとおりです:

Use 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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。