Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Laravel Não é possível excluir ou atualizar uma linha pai:uma restrição de chave estrangeira falha


Sim, é o seu esquema. A restrição em likes.post_id irá impedir que você apague registros das posts tabela.

Uma solução pode ser usar onDelete('cascade') nos likes arquivo de migração:
Schema::create('likes', function (Blueprint $table) {
    $table->integer('post_id')->unsigned();
    $table->foreign('post_id')->references('id')->on('posts')->onDelete('cascade');
});

Dessa forma, quando uma postagem for excluída, todas as curtidas relacionadas também serão excluídas.

Ou, se você tiver um relacionamento do modelo Post com o modelo Like, você pode $post->likes()->delete() antes de excluir a postagem em si.