انتقل إلى محتوى الدرس

Bulk Deletes and Model Pruning الحذف بالجملة وتقليم النماذج

حذف السجلات وتفعيل سمة الحذف الناعم SoftDeletes لاستعلام البيانات المؤرشفة واستعادتها بـ restore أو حذفها نهائياً.
1 صفوف تعليمية
إطار العمل Laravel
0 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

لأتمتة تنظيف السجلات المؤرشفة القديمة أو منتهية الصلاحية، يوفر Laravel سمتي Prunable و MassPrunable لتعريف استعلام التنظيف داخل النموذج نفسه. تشغيل أمر Artisan المخصص للتقليم يمسح السجلات المطابقة على دفعات متتالية بحيث تبقى جداول الإنتاج خفيفة دون تجميد الصفوف.

  • سمة التقليم التلقائي (Prunable Trait): تعرف دالة prunable التي تعيد استعلاماً يحدد السجلات القديمة الواجب إزالتها.
  • خطاف التنظيف المسبق (pruning Hook): دالة اختيارية داخل النموذج لحذف الملفات المرفقة من التخزين قبل إزالة السجل.
  • التقليم الجماعي السريع (MassPrunable): ينفذ استعلام حذف SQL جماعياً لكل دفعة لتحقيق سرعة عالية عند عدم الحاجة للأحداث.
PHP
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Prunable;

public function prunable(): Builder
{
    return static::onlyTrashed()
        ->where('deleted_at', '<=', now()->subMonth());
}