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

Referential Actions on Delete Events إجراءات الحذف المتسلسل وفك الارتباط

تعديل الجداول القائمة وإضافة الفهارس وبناء قيود المفاتيح الأجنبية عبر foreignId->constrained وفق أحدث معايير إطار العمل Laravel 12 مع أمثلة وتطبيقات عملية متدرجة.
1 صفوف تعليمية
إطار العمل Laravel
0 مشاهدة

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

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

عند حذف سجل أب، تحتاج قاعدة البيانات لتعليمات صريحة حول مصير السجلات الفرعية المرتبطة به. يتيح ربط دوال cascadeOnDelete أو nullOnDelete أو restrictOnDelete بعد دالة القيد فرض السلوك المطلوب مباشرة على مستوى محرك القاعدة.

  • الحذف المتسلسل (cascadeOnDelete): حذف جميع السجلات الفرعية التابعة تلقائياً فور حذف سجل الأب.
  • التحويل لفارغ (nullOnDelete): تفريغ قيمة المفتاح الأجنبي إلى NULL مع بقاء السجل الفرعي.
  • منع الحذف (restrictOnDelete): رفض حذف السجل الأب طالما توجد سجلات فرعية مرتبطة به كالفواتير المالية.
PHP
Schema::create('comments', function (Blueprint $table) {
    $table->id();
    $table->foreignId('post_id')
        ->constrained()
        ->cascadeOnDelete();
    $table->foreignId('editor_id')
        ->nullable()->constrained('users');
});