خطأ Laravel: "لا يمكن حذف أو تحديث الصف الأصلي: فشل قيد المفتاح الخارجي"
"SQLSTATE[23000]: انتهاك قيد التكامل: 1451 لا يمكن حذف أو تحديث صف أصل: فشل قيد المفتاح الخارجي (eliapi8.likes، CONSTRAINT likes_post_id_foreign FOREIGN KEY (post_id) مراجع المشاركات (id))"
تحليل المخططعند فحص المخطط، يصبح من الواضح وجود قيد مفتاح خارجي في حقل post_id الخاص بجدول الإعجابات. يمنع هذا القيد حذف سجل النشر إذا كان هناك أي سجلات مرتبطة به.
الحلول المقترحة
الحل 1: الاستفادة من onDelete('cascade')
تقديم onDelete('cascade') في ملف ترحيل جدول الإعجابات يوفر حلاً. باستخدام هذا التوجيه، عندما يتم حذف سجل منشور، تتم إزالة جميع السجلات المشابهة تلقائيًا:
Schema::create('likes', function (Blueprint $table) { $table->integer('post_id')->unsigned(); $table->foreign('post_id')->references('id')->on('posts')->onDelete('cascade'); });
Schema::create('likes', function (Blueprint $table) { $table->integer('post_id')->unsigned(); $table->foreign('post_id')->references('id')->on('posts')->onDelete('cascade'); });الحل 2: الاستفادة من علاقات النماذج
إذا احتفظ نموذج النشر بعلاقة مع نموذج الإعجاب، فيمكن استخدام النهج التالي:
جلب الإعجابات المرتبطة باستخدام $post->likes()->get().تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3