在Laravel 中,嘗試刪除貼文時可能會出現有趣的錯誤具有相關的喜好。錯誤訊息聲明:
「SQLSTATE[23000]:違反完整性限制:1451 無法刪除或更新父行:外鍵約束失敗(eliapi8.likes,CONSTRAINT likes_post_id_foreign FOREIGN KEY (post_id) REFERENCES posts ( OREid )"
分析架構
檢查架構後,很明顯,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:利用模型關係
如果貼文模型與Like 模型保持關係,可以採用以下方法:
透過採用這些解決方案中的任何一個,都可以解決有問題的錯誤,允許貼文被刪除,無論其喜歡狀態如何。
以上是如何解決 Laravel 中的「無法刪除或更新父行:外鍵約束失敗」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!