在 Laravel 中,尝试删除帖子时可能会出现一个有趣的错误具有相关的喜好。错误消息声明:
"SQLSTATE[23000]: 完整性约束冲突: 1451 无法删除或更新父行: 外键约束失败 (eliapi8.likes, CONSTRAINT likes_post_id_foreign FOREIGN KEY (post_id) REFERENCES posts ( id))"
分析架构
检查架构后,很明显,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