Mysql
 sql >> Base de données >  >> RDS >> Mysql

Laravel Impossible de supprimer ou de mettre à jour une ligne parent :une contrainte de clé étrangère échoue

Oui, c'est ton schéma. La contrainte sur likes.post_id vous empêchera de supprimer des enregistrements des posts tableau.

Une solution pourrait être d'utiliser onDelete('cascade') dans les likes fichier de migration :

Schema::create('likes', function (Blueprint $table) {
    $table->integer('post_id')->unsigned();
    $table->foreign('post_id')->references('id')->on('posts')->onDelete('cascade');
});

De cette façon, lorsqu'un message est supprimé, tous les likes associés seront également supprimés.

Ou, si vous avez une relation entre le modèle Post et le modèle Like, vous pouvez $post->likes()->delete() avant de supprimer le message lui-même.