Mysql
 sql >> Database >  >> RDS >> Mysql

Laravel Impossibile eliminare o aggiornare una riga padre:un vincolo di chiave esterna non riesce

Sì, è il tuo schema. Il vincolo su likes.post_id ti impedirà di eliminare i record dai posts tabella.

Una soluzione potrebbe essere l'utilizzo di onDelete('cascade') nei likes file di migrazione:

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

In questo modo, quando un post viene eliminato, verranno eliminati anche tutti i Mi piace correlati.

Oppure, se hai una relazione dal modello Post al modello Like, puoi $post->likes()->delete() prima di eliminare il post stesso.