在Laravel 中,嘗試刪除帖子時可能會出現一個有趣的錯誤具有相關的喜好。錯誤訊息宣告:
"SQLSTATE[23000]: 完整性約束衝突: 1451 無法刪除或更新父行: 外鍵約束失敗(eliapi8.likes, CONSTRAINT likes_post_id_foreign FOREIGN KEY (post_id) REFERENCES posts ( )"
分析架構
檢查架構後,很明顯,likes 表的post_id 欄位上存在外鍵約束。如果存在任何關聯的同類記錄,此約束會阻止刪除貼文記錄。
建議的解決方案
解決方案1:利用onDelete('cascade')
在likes表的遷移文件中引入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模型與Like模型保持關係,可以採用以下方法:
透過採用這些解決方案中的任何一個,可以解決有問題的錯誤,允許刪除帖子,無論其喜歡如何地位。
免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。
Copyright© 2022 湘ICP备2022001581号-3