Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Menyelesaikan Ralat \'Tidak Boleh Padam atau Kemas Kini Baris Induk: Kekangan Kunci Asing\' dalam Laravel?
Dalam Laravel, ralat yang menarik boleh timbul apabila cuba memadamkan siaran yang mengaitkan suka. Mesej ralat menyatakan:
"SQLSTATE[23000]: Pelanggaran kekangan integriti: 1451 Tidak boleh memadam atau mengemas kini baris induk: kekangan kunci asing gagal (eliapi8.likes, CONSTRAINT likes_post_id_foreign post_id_id) REFERENCES (postingan_id_ID) ASING id))"
Menganalisis Skema
Setelah meneliti skema, ternyata bahawa kekangan kunci asing wujud pada medan post_id jadual suka. Kekangan ini menghalang pemadaman rekod siaran jika terdapat sebarang rekod seperti yang dikaitkan.
Penyelesaian Cadangan
Penyelesaian 1: Gunakan onDelete('cascade')
Memperkenalkan onDelete('cascade') dalam fail migrasi jadual suka menyediakan penyelesaian. Dengan menggunakan arahan ini, apabila rekod siaran dipadamkan, semua rekod seperti yang sepadan akan dialih keluar secara automatik:
Schema::create('likes', function (Blueprint $table) { $table->integer('post_id')->unsigned(); $table->foreign('post_id')->references('id')->on('posts')->onDelete('cascade'); });
Penyelesaian 2: Leverage Model Hubungan
Jika Siaran model mengekalkan hubungan dengan model Suka, pendekatan berikut boleh digunakan:
Dengan menggunakan salah satu daripada penyelesaian ini, ralat bermasalah boleh diselesaikan, membenarkan siaran dipadamkan tanpa mengira status suka mereka.
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan Ralat \'Tidak Boleh Padam atau Kemas Kini Baris Induk: Kekangan Kunci Asing\' dalam Laravel?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!