mysql 中怎样更新父行_mysql – Laravel无法删除或更新父行:外键约束失败

由于某种原因,用户无法删除帖子,如果它已被喜欢,它之前正在工作,但当我将帖子与喜欢的帖子相关时,我一直收到此错误,我甚至无法在Sequel Pro中将其删除,除非我删除相关的相关内容先发帖子.

错误

SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or

update a parent row: a foreign key constraint fails

(eliapi8.likes, CONSTRAINT likes_post_id_foreign FOREIGN KEY

(post_id) REFERENCES posts (id)) (SQL: delete from posts where

id = 149)

zDfHG.png

也许这是我的架构?

帖子架构

Schema::create('posts', function (Blueprint $table) {

$table->increments('id');

$table->string('title');

$table->text('body');

$table->integer('user_id')->unsigned();

$table->foreign('user_id')->references('id')->on('users');

$table->timestamps();

});

喜欢Schema

Schema::create('likes', function (Blueprint $table) {

$table->increments('id');

$table->integer('post_id')->unsigned();

$table->integer('user_id')->unsigned();

$table->foreign('post_id')->references('id')->on('posts');

$table->foreign('user_id')->references('id')->on('users');

$table->softDeletes();

$table->timestamps();

});

我喜欢和不喜欢的帖子,但用户无法删除已被喜欢的帖子.

PostController.php

public function destroy(Post $post){

$this->authorize('delete', $post);

$postl = Post::with('likes')->whereId($post)->delete();

if ($post->delete()) {

if($postl){

return response()->json(['message' => 'deleted']);

}

};

return response()->json(['error' => 'something went wrong'], 400);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值