何らかの理由で、ユーザーが好きな投稿を削除できない場合は、以前は機能していましたが、私は最初の投稿に関連付けられている好きなものを削除しない限り、私のsequalプロで削除することはできません。Laravel親の行を削除または更新できません:外部キーの制約が適用されません
エラー
から削除SQLSTATE [23000]:整合性制約違反:1451は、親行を削除するか 更新することはできません:外部キー制約は (
eliapi8
に失敗likes
、CONSTRAINTlikes_post_id_foreign
FOREIGN KEY (post_id
)REFERENCESposts
(id
))(SQL:posts
id
= 149)
多分私のスキーマですか?
投稿スキーマ
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::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);
}
それは働いたので、投稿が好きならonDeleteを使うことができます。 – BARNOWL
なぜ私は 'posts'テーブルからレコードを削除することができなかったのかの答えを更新しました。 – Camilo
私は学ぶのが大好き – BARNOWL