sql >> Databáze >  >> RDS >> Mysql

Laravel Nelze odstranit nebo aktualizovat nadřazený řádek:omezení cizího klíče se nezdaří

Ano, je to vaše schéma. Omezení likes.post_id vám zabrání ve smazání záznamů z posts tabulka.

Jedním z řešení by mohlo být použití onDelete('cascade') v likes migrační soubor:

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

Tímto způsobem, když je příspěvek smazán, budou smazány i všechny související lajky.

Nebo, pokud máte vztah z modelu Post k modelu To se mi líbí, můžete $post->likes()->delete() před smazáním samotného příspěvku.



  1. aws - ec2 - mysql - instance stop,reboot - hesla ostatních uživatelů změněna

  2. mysql do php do xml zobrazuje prázdný věk

  3. MySQL Kde je datum a čas větší než dnes

  4. Řešení problémů generátoru číselných řad – Část 4