在「Laravel5.4」中,軟刪除指的是將表記錄的狀態標記上刪除狀態,並不是真正的從資料庫中刪除了,這樣在查詢的時候就可以添加過濾;軟刪除能夠在表中以「deleted_at」欄位值進行標識,預設值為null。
本文操作環境:Windows10系統、Laravel5.4版、Dell G3電腦。
軟刪除並不是真的從資料庫中刪除掉了, 而是在表中以deleted_at(這個字段的名稱也是固定的)這個字段值標識的, 需要在設計表的時候呢添加這個字段deleted_at, 默認值為null,
所謂軟刪除指的是數據表記錄並未真的從數據庫刪除,而是將表記錄的標識狀態標記為軟刪除,這樣在查詢的時候就可以加以過濾,讓對應表記錄看起來是被」刪除「了。 Laravel中使用了一個日期欄位作為識別狀態,這個日期欄位可以自定義,這裡我們使用deleted_at,如果對應模型被軟刪除,則deleted_at欄位的值為刪除時間,否則該值為空。
軟體刪除就是邏輯刪除,資料保留單標記上刪除狀態,一般我們會用刪除時間作為標記,這樣標記狀態有了,刪除時間也有了。
類型為timestamp('deleted_at')
在模型中加入use 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中文網其他相關文章!