Rumah  >  Artikel  >  rangka kerja php  >  Bagaimana untuk melaksanakan pemadaman lembut dalam rangka kerja Laravel

Bagaimana untuk melaksanakan pemadaman lembut dalam rangka kerja Laravel

PHPz
PHPzasal
2023-03-31 17:16:491734semak imbas

Laravel ialah rangka kerja PHP yang berkuasa yang menyediakan pembangun dengan banyak fungsi mudah. Antaranya, pemadaman lembut adalah ciri yang sangat berguna. Artikel ini akan memperkenalkan cara melaksanakan pemadaman lembut dalam rangka kerja Laravel.

Pemadaman lembut merujuk kepada menandakan rekod sebagai dipadam dan bukannya memadam rekod. Ini memberi kami peluang untuk memulihkan rekod yang dipadam sambil mengekalkan integriti data. Jika kami memadamkan rekod secara langsung, ia mungkin menyebabkan beberapa kebergantungan, jadi pemadaman lembut adalah pilihan yang sangat baik.

Pertama, untuk mendayakan pemadaman lembut dalam Laravel, kami perlu menggunakan ciri SoftDeletes dalam model kami.

use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;

class User extends Model
{
    use SoftDeletes;

    protected $dates = ['deleted_at'];
}

Dalam contoh di atas, kami menggunakan use SoftDeletes untuk mendayakan pemadaman lembut dan menentukan atribut deleted_at yang akan digunakan dalam model untuk menahan cap masa pemadaman lembut.

Setelah kami mendayakan ciri SoftDeletes, kami boleh melakukan pemadaman lembut menggunakan kaedah delete() dalam Laravel. Kaedah ini akan menetapkan atribut deleted_at kepada cap masa semasa. Untuk memulihkan rekod yang dipadam lembut, kita perlu menggunakan kaedah restore() dalam Laravel.

// 在模型中软删除一个记录
$user = User::find(1);
$user->delete();

// 恢复一个软删除的记录
$user = User::withTrashed()->where('id', 1)->first();
$user->restore();

Dalam kod di atas, kami mula-mula memadam rekod menggunakan kaedah delete(). Kami kemudian menggunakan kaedah withTrashed() untuk mendapatkan semula rekod yang dipadam lembut dan kemudian menggunakan kaedah restore() untuk memulihkan rekod.

Apabila kami mendapatkan semula data daripada jadual, kami biasanya tidak mahu rekod yang dipadam dikembalikan. Menggunakan kaedah onlyTrashed() Laravel, kami hanya boleh menyenaraikan rekod yang dipadamkan. Untuk menyenaraikan semua rekod, termasuk rekod yang dipadam, gunakan kaedah withTrashed().

// 获取只删除的记录
$deletedUsers = User::onlyTrashed()->get();

// 获取所有记录,包括已删除的记录
$allUsers = User::withTrashed()->get();

Laravel juga menyediakan kaedah forceDelete() untuk pemadaman paksa rekod yang dipadam lembut. Kaedah ini akan mengalih keluar rekod sepenuhnya daripada pangkalan data, bukannya hanya menetapkan atribut deleted_at kepada cap masa semasa.

// 永久删除一个已删除记录
$user = User::withTrashed()->where('id', 1)->first();
$user->forceDelete();

Dalam artikel ini, kami telah mempelajari cara mendayakan dan menggunakan padam lembut dalam Laravel. Pemadaman lembut meningkatkan integriti data kami dan membantu kami memulihkan rekod yang dipadam dengan mudah. Dalam projek sebenar, pemadaman lembut adalah fungsi yang sangat berguna yang boleh kita gunakan mengikut keperluan projek.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan pemadaman lembut dalam rangka kerja Laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn