Rumah > rangka kerja php > Laravel > Analisis ringkas tentang cara data yang dipadam lembut dalam laravel masih boleh dibaca

Analisis ringkas tentang cara data yang dipadam lembut dalam laravel masih boleh dibaca

PHPz
Lepaskan: 2023-04-03 19:56:36
asal
533 orang telah melayarinya

Laravel ialah rangka kerja aplikasi web PHP yang popular yang menyediakan banyak ciri dan alatan berkuasa yang memudahkan proses pembangunan aplikasi web. Antaranya, fungsi pemadaman lembut Laravel adalah ciri yang sangat berguna Ia boleh mencapai beberapa keperluan khas sambil mengekalkan integriti data dengan menandakan rekod sebagai dipadam dan bukannya memadam rekod daripada pangkalan data.

Namun, masalah yang mungkin dihadapi oleh ramai pembangun Laravel ialah, adakah data yang dipadam lembut masih boleh dibaca? Dalam artikel ini, kami akan meneroka masalah ini dan penyelesaiannya.

Pertama sekali, anda perlu memahami prinsip pemadaman lembut dalam Laravel. Pemadaman lembut dilaksanakan dengan menambahkan medan deleted_at pada jadual data. Apabila menggunakan pemadaman lembut, apabila rekod dipadamkan, Laravel hanya menetapkan medan deleted_at rekod kepada nilai bukan kosong dan bukannya memadam rekod, sekali gus mencapai kesan "pemadaman lembut". Apabila menanyakan data, Laravel akan menapis rekod secara automatik dengan medan deleted_at yang tidak kosong untuk mencapai kesan menanya hanya rekod yang belum "dipadamkan lembut".

Oleh itu, data yang dipadam lembut masih boleh dibaca, walaupun rekod yang dipadam lembut masih wujud dalam pangkalan data. Walau bagaimanapun, secara lalai, pemadaman lembut Laravel hanya akan menapis secara automatik rekod yang telah ditandakan sebagai "dipadamkan lembut".

dengan kaedah Trashed mengembalikan rekod yang dipadam lembut, manakala menanya rekod yang tidak dipadam lembut masih menggunakan kaedah biasa:

// 查询未被软删除的记录
$users = DB::table('users')->whereNull('deleted_at')->get();

// 查询被软删除的记录
$trashedUsers = DB::table('users')->whereNotNull('deleted_at')->get();

// 同时查询未被软删除和被软删除的记录
$usersWithTrashed = DB::table('users')->withTrashed()->get();
Salin selepas log masuk

Dalam contoh di atas, kami menggunakan kaedah whereNull dan whereNotNull untuk Query undeleted dan rekod yang dipadamkan, dan juga gunakan kaedah withTrashed untuk menanyakan rekod yang dipadam lembut.

Selain kaedah withTrashed, Laravel juga menyediakan dua kaedah lain: onlyTrashed and restore, yang digunakan untuk menanyakan rekod yang dipadam lembut dan memulihkan rekod yang dipadam lembut. Penggunaannya adalah seperti berikut:

// 查询被软删除的记录
$trashedUsers = DB::table('users')->onlyTrashed()->get();

// 恢复软删除的记录
DB::table('users')->where('id', $id)->restore();
Salin selepas log masuk

Ringkasnya, data yang dipadam lembut Laravel masih boleh dibaca, tetapi secara lalai hanya rekod yang belum dipadam lembut akan ditanya. Jika anda perlu menanyakan rekod lembut yang dipadam dan tidak dipadam pada masa yang sama, anda perlu menambah kaedah denganSampah secara manual. Selain itu, anda juga boleh menggunakan kaedah OnlyTrashed untuk menanyakan rekod yang dipadam lembut dan kaedah pemulihan untuk memulihkan rekod yang dipadam lembut. Menguasai kaedah ini membolehkan pembangun menggunakan fungsi pemadaman lembut Laravel dengan lebih baik dan meningkatkan kecekapan pembangunan.

Atas ialah kandungan terperinci Analisis ringkas tentang cara data yang dipadam lembut dalam laravel masih boleh dibaca. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan