Sejak Laravel 8.5 terdapat ciri yang ditambahkan pada rangka kerja yang membolehkan anda memangkas model berdasarkan tarikh. Ini
sifat dipanggil IlluminateDatabaseEloquentPrunable dan ia akan membolehkan anda memangkas model berdasarkan tarikh.
Sifat ini berguna apabila anda mempunyai model yang ingin anda padamkan berdasarkan tarikh. Contohnya, anda mungkin mempunyai model
yang menyimpan log dan anda mahu memadamkan log yang lebih lama daripada tarikh tertentu.
Dalam artikel ini, kita akan melihat cara anda boleh mencipta sifat yang membolehkan anda memangkas model berdasarkan tarikh.
Untuk menggunakan sifat Boleh Pangkas anda perlu menambahkannya pada model anda dan menentukan kaedah boleh dipangkas yang akan mengembalikan pertanyaan
contoh pembina. Contoh pembina pertanyaan ini akan digunakan untuk memangkas model berdasarkan tarikh.
Berikut ialah contoh cara anda boleh menggunakan sifat Boleh Prun dalam model:
<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Prunable; class Log extends Model { use Prunable; public function prunable() { return $this->where('created_at', '<', now()->subDays(30)); } }
Dalam contoh ini, kami mempunyai model Log yang menggunakan sifat Prunable. Kami telah menentukan kaedah pemangkasan yang mengembalikan
contoh pembina pertanyaan yang akan memadamkan log yang lebih lama daripada 30 hari.
Untuk memangkas model anda perlu menjadualkan pemangkasan berjalan pada masa tertentu. Anda boleh melakukan ini dengan menambahkan arahan
ke fail route/console.php anda yang akan memanggil kaedah prune pada model.
Berikut ialah contoh cara anda boleh menjadualkan pemangkasan model Log:
<?php use Illuminate\Support\Facades\Schedule; Schedule::command('model:prune')->daily();
Dalam contoh ini, kami menjadualkan perintah model:prune untuk dijalankan setiap hari. Perintah ini akan memanggil kaedah prun
pada model Log dan padamkan log yang lebih lama daripada 30 hari.
Atas ialah kandungan terperinci Model Fasih Boleh Pangkas. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!