在“laravel5.4”中,軟刪除指的是將表記錄的狀態標記上刪除狀態,并不是真正的從數據庫中刪除了,這樣在查詢的時候就可以添加過濾;軟刪除能夠在表中以“deleted_at”字段值進行標識,默認值為null。
本文操作環境:Windows10系統、Laravel5.4版、Dell G3電腦。
laravel5.4中軟刪除是什么
軟刪除并不是真的從數據庫中刪除掉了, 而是在表中以deleted_at(這個字段的名稱也是固定的)這個字段值標識的, 需要在設計表的時候呢添加這個字段 deleted_at, 默認值為null,?
所謂軟刪除指的是數據表記錄并未真的從數據庫刪除,而是將表記錄的標識狀態標記為軟刪除,這樣在查詢的時候就可以加以過濾,讓對應表記錄看上去是被”刪除“了。Laravel中使用了一個日期字段作為標識狀態,這個日期字段可以自定義,這里我們使用deleted_at,如果對應模型被軟刪除,則deleted_at字段的值為刪除時間,否則該值為空。
軟刪除就是邏輯刪除,數據保留單標記上刪除狀態,一般我們會用刪除時間來作為標記,這樣標記狀態有了,刪除時間也有了。
類型為 timestamp(‘deleted_at’)
在模型中添加 use SoftDeletes
use?IlluminateDatabaseEloquentSoftDeletes; ? 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 IlluminateDatabaseMigrationsMigration; use IlluminateDatabaseSchemaBlueprint; use IlluminateSupportFacadesSchema; 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視頻教程】
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END
喜歡就支持一下吧
相關推薦