Laravel 中的数据库约束错误:“无法删除或更新父行”
Laravel 中遇到的常见错误是“SQLSTATE[23000” ]:违反完整性约束:1451 无法删除或更新父行。”当尝试从父表中删除相关表中包含子行的行时,会发生此错误。
在您的情况下,您在尝试删除具有关联点赞的帖子时遇到此错误。这是因为 Likes 表有一个引用 posts 表的外键约束。当您尝试删除帖子时,它无法被删除,因为 Likes 表中仍然有依赖于它的记录。
要解决此错误,您可以修改数据库架构以使用 onDelete('cascade' )。当父记录被删除时,这将自动删除关联的子记录。
使用 onDelete('cascade') 更新喜欢架构:
<code class="php">Schema::create('likes', function (Blueprint $table) { $table->increments('id'); $table->integer('post_id')->unsigned(); $table->foreign('post_id')->references('id')->on('posts')->onDelete('cascade'); });</code>
或者,您可以在删除父记录之前手动删除关联的子记录。在您的 Laravel 模型中,您可以使用以下代码来执行此操作:
<code class="php">$post->likes()->delete(); $post->delete();</code>
以上是以下是一些适合您文章内容的基于问题的标题: * **Laravel 数据库约束错误:为什么我无法删除带有点赞的帖子?** * **在 Laravel 中删除父行:如何的详细内容。更多信息请关注PHP中文网其他相关文章!